PHP Variable an JavaScript übergeben???

Webber

Mitglied
Hi,

hab folgendes Problem.
Ich lasse eine Anzahl von Layer dynamisch anhand der Datensatzanzahl generieren.
Zur Positionierung benötige ich ein Javascript, damit der Layer sich an der Mouse orientiert.
Hier erstmal das Script:
PHP:
<?
$counter = mysql_query("SELECT lfd FROM trainer ORDER BY lfd");
while($count = mysql_fetch_array($counter)) 
{
$lfd = $count['lfd'];
?>  
	<script type="text/javascript"> 
  <!-- 
  function doMouseMove() 
    { 
     Info.style.pixelLeft=event.clientX+10 
     Info.style.pixelTop=event.clientY+10 
    } 
    document.onmousemove=doMouseMove; 
  // --> 
  </script>
<div id="Info<?echo $lfd;?>" style="position:absolute; z-index:0; visibility: hidden; background-color: #FFFFCC; layer-background-color: #FFFFCC; border: 1px none #000000; left: offsetx; top: offsety;" align="center"> 
<?	$res = mysql_query("SELECT * FROM zertifikat WHERE trainerid='$lfd' ORDER BY datum desc");
    if(mysql_num_rows($res)==0) 
{?>
 <div class="form">&nbsp;&nbsp;Es liegen keine Zertifikate vor.&nbsp;</div>
<?}
else {?>
  <table border=0>
    <tr class="form"> 
      <td width="78"><b>Datum</b></td>
      <td width="80"><b>Zertifikat</b></td>
    </tr>
    
	
	<?while ($data = mysql_fetch_array($res)) { ?>
    <tr class="form"> 
      <td><? echo $data['datum']; ?></td>
      <td><? echo $data['beschreibung']; ?></td>
    </tr>
    <?}?>
  </table><?}?>
</div>
<?}?>

Soweit so gut, nur wie bekomm ich es hin, dass im JS nicht steht
PHP:
Info.style.pixelLeft=event.clientX+10
sondern sowas, wie
PHP:
Info.<?echo $lfd;?>".style.pixelLeft=event.clientX+10

Also, dass mit jedem Schleifendurchlauf auch im JS 'Info.x' um einen erhöht wird?

Kann einer Helfen?

Gruß webber
 
Ehrlich gesagt verstehe ich dein Problem nicht. Das mag sicher davon abhängen, dass ich kein JS kann, aber ich will trotzdem versuchen dir zu helfen. :)

Wie wäre es, wenn du VOR die while-schleife ein
PHP:
$i = 1;
schreibst, und IN die while-schleife ein
PHP:
Info.<?=$i++?>.style.pixelLeft=event.clientX+10
? Klappt das so evt? :)
 
Zuletzt bearbeitet:
Erstmal thx boom,

Deine Idee war nicht schlecht, aber leider funzt das so nicht in JS.
Aber ich habe eine Lösung gefunden.
Wenn es interessiert, sie sieht nun so aus:
PHP:
<?
$counter = mysql_query("SELECT lfd,name FROM trainer ORDER BY lfd");
while($count = mysql_fetch_array($counter)) 
{
$lfd = $count['lfd'];
?>  
	<script type="text/javascript"> 
  <!-- 
	

  function doMouseMove<?php printf("%s",strtr(addslashes($lfd),array("\r" => '\r', "\n" => '\n')));?>() 
    { 
     Info<?php printf("%s",strtr(addslashes($lfd),array("\r" => '\r', "\n" => '\n')));?>.style.pixelLeft=event.clientX + document.body.scrollLeft +10
     Info<?php printf("%s",strtr(addslashes($lfd),array("\r" => '\r', "\n" => '\n')));?>.style.pixelTop=event.clientY + document.body.scrollTop +10
    } 

  // --> 
  </script>
<div id="Info<?echo $lfd;?>" style="position:absolute; z-index:0; visibility: hidden; background-color: #FFFFCC; layer-background-color: #FFFFCC; border: 1px none #000000; align="center"> 
<?	$res = mysql_query("SELECT * FROM zertifikat WHERE trainerid='$lfd' ORDER BY datum desc");
    if(mysql_num_rows($res)==0) 
{?>
 <table border=0>
	<tr class="form"> 
      <td width="158"><b>Zertifikate von <?echo $count['name'];?></b></td>
     </tr>
	<tr class="form"> 
      <td width="158" valign="top">&nbsp;&nbsp;Es liegen keine Zertifikate vor.&nbsp;</td>
     </tr>
		</table>

<?}
else {?>
  <table border=0>
    <tr class="form"> 
      <td width="158" valign="top"><b>Zertifikate von <?echo $count['name'];?></b></td>
     </tr>
    <tr class="form"> 
      <td width="78" valign="top"><b>Datum</b></td>
      <td width="80" valign="top"><b>Zertifikat</b></td>
    </tr>
    
	
	<?while ($data = mysql_fetch_array($res)) { ?>
    <tr valign="top" class="form"> 
      <td valign="top"><? echo $data['datum']; ?></td>
      <td valign="top"><? echo $data['beschreibung']; ?></td>
    </tr>
    <?}?>
  </table><?}?>
</div>
<?}?>

cu webber
 
Zurück