PHP-Wert an JavaScript übergeben

mokaschitta

Mitglied
PHP Variable an Javascript übergeben

Hi!
Ich habe ein kleines Problem bei der Übergabe einer PHP variable an eine JavaScript Funktion. Ich möchte ein neues browserwindow mit javascript öffnen, an das eine Variable weitergegeben werden soll. Das klappt leider nur teilweise.

PHP:
<table width="100%" height="0" border="0" cellspacing="0">
<tr><td width='100%'><b>nick</b>:</td><td><b>rank:</b></td></tr>
<?php
$result = mysql_query("SELECT * FROM test_member order by rank DESC");
                      while ($row = mysql_fetch_array($result)) { 
					  $mid = $row["id"];
					  $name = $row["nick"];
					  $rank = $row["rank"];
					  if($rank == 1) {
					  $rank="admin";
					  $name="~ $name";
					  } else {
					  $rank="artist";
					  $name="* $name";
					  }
					  ?>
<script language="JavaScript" type="text/JavaScript">
<!--
function neuesfenster() {
window.open('memberdetails.php?mid=<? echo "$mid"; ?>', 'fenster1' , 'width=750,height=500,toolbar=no,status=no,menubar=no,scollbars=auto,left=2, top=0').focus();
}
//-->
</script>
					  <tr><td width='100%'><b><a href='javascript:neuesfenster()'><? echo"$name"; ?></a></b></td><td><? echo"$rank"; ?></td></tr>
					  <? } ?>
					  </table>
Das ist das script was ich mir daszu ausgedacht habe. leider übergibt das Javascript immer nur die neuste ID und nicht jede einzeln. Kann mir da jemand helfen? Das was ich komisch finde ist, dass das Javascript in die While-Schleife eingebunden ist, aber dennoch nur die neuste ID übergibt.
 
du müsstest bei jedem Durchlauf eine neue Funktion erzeugen! Das heißt z.Z wird immer wieder eine neuesfenster() Funktion erzeugt - du musst dafür sorgen dass die Funktion bei jedem Durchlauf einen neuen Namen erhält. Zum Beispiel könntest du einfach die ID an neuesfenster an hängen:
PHP:
<table width="100%" height="0" border="0" cellspacing="0">
<tr><td width='100%'><b>nick</b>:</td><td><b>rank:</b></td></tr>
<?php
$result = mysql_query("SELECT * FROM test_member order by rank DESC");
                      while ($row = mysql_fetch_array($result)) {
                      $mid = $row["id"];
                      $name = $row["nick"];
                      $rank = $row["rank"];
                      if($rank == 1) {
                      $rank="admin";
                      $name="~ $name";
                      } else {
                      $rank="artist";
                      $name="* $name";
                      }
                      ?>
<script language="JavaScript" type="text/JavaScript">
<!--
function neuesfenster<?=$mid?>() {
window.open('memberdetails.php?mid=<? echo "$mid"; ?>', 'fenster1' , 'width=750,height=500,toolbar=no,status=no,menubar=no,scollbars=auto,left=2, top=0').focus();
}
//-->
</script>
                      <tr><td width='100%'><b><a href='java script:neuesfenster<?=$mid?>()'><? echo"$name"; ?></a></b></td><td><? echo"$rank"; ?></td></tr>
                      <? } ?>
                      </table>
 
Nein, eine JavaScript-Funktion für den Link reicht ;)

In den Header:

Code:
<script language="JavaScript" type="text/JavaScript"> 
<!-- 
function neuesfenster(user_id) { 
    window.open('memberdetails.php?mid='+user_id+', 'fenster1' , 'width=750,height=500,toolbar=no,status=no,menubar=no,scollbars=auto,left=2, top=0'); 
} 
//--> 
</script>

Im Body:

PHP:
<table width="100%" height="0" border="0" cellspacing="0">
    <tr>
        <td width="100%"><b>nick</b>:</td>
        <td><b>rank:</b></td>
    </tr> 
<?php 
$result = mysql_query("SELECT * FROM test_member order by rank DESC"); 
while ($row = mysql_fetch_array($result)) { 
    $mid    = $row["id"]; 
    $name   = $row["nick"]; 
    $rank   = $row["rank"]; 
    if($rank == 1) { 
        $rank   = "admin"; 
        $name   = "~ $name"; 
    } else { 
        $rank   = "artist"; 
        $name   = "* $name"; 
    } 
?> 
    <tr>
        <td width="100%"><b><a href="java script:neuesfenster(<? echo $mid; ?>);"><? echo $name; ?></a></b></td>
        <td><? echo $rank; ?></td>
    </tr> 
<? } ?> 
</table>
 
Jou, Danke. Mit der zweiten version funktioniert das wunderbar. Hattest allerdings nen Tippfehler im Javascript ;) . Naja ein Anführungszeichen vergisst jeder mal.

Vielen Dank!
 
Sorry, hab nicht wirklich Ahnung von JavaScript und dachte es funktioniert ähnlich PHP Funktionen :/
 
Re: PHP Variable an Javascript übergeben

Warum gibt er "Hello World" nicht aus?

Code:
<? $mid = "Hello World"; ?>
<body>
<script type=text/JavaScript>
var Ausgabe=<? echo "$mid"; ?>;
document.write( Ausgabe ); 
</script>
 
Re: PHP Variable an Javascript übergeben

Du hast die Anführungszeichen an der falschen Stelle.
Versuch es mal so:

var Ausgabe="<? echo $mid; ?>";
 
Re: PHP Variable an Javascript übergeben

Hallöchen,

also ich habe hier ein ähnliches Problem aber es will nicht so recht klappen...

Ich möchte gern auf meinem CMS im Navigationsmenü diesen Link ausführen:


Code:
javascript:openWindow('/chat/flashchat.php?username=$userdata[user_name]&password=$logincheck[1]&lang=gm', 600,550)



mit userdata[user_name]&password=$logincheck[1] überprüft er den Benutzer und wählt sich dann mit diesem Namen in den Chat, es klappt auch soweit, das heisst er wählt sich ein und begrüsst mich dann aber dummerweise mit Hallo userdata[user_name]

bloss eine Datenbankverbindung muss er doch haben sonst würde er eine Eingabeaufforderung zwecks Benutzernamen und Password für den Chat erzeugen...


Oder hat das doch was mit der Datenbank zu tun?


Hat jemand nen kleinen Tip für mich?



Gruss Scratti
 
Re: PHP Variable an Javascript übergeben

Was ich mich Frage ist:
Hast du den geposteten Code im PHP geschrieben oder nur im HTML? Mich schaut das nach HTML aus, du müsstest das in PHP umwandeln:
PHP:
<?php echo "javascript:openWindow('/chat/flashchat.php?username=" . $userdata[user_name] . "&password=" . $logincheck[1] . "&lang=gm', 600,550)"; ?>
oder
PHP:
javascript:openWindow('/chat/flashchat.php?username=<?=$userdata[user_name];?>&password=<?=$logincheck[1];?>&lang=gm', 600,550)
 
Re: PHP Variable an Javascript übergeben

hmm, da gibt es bei mir dann diesen Fehler :

Parse error: parse error, unexpected ':' in /var/www/x1167/html/netsnoop_neu/chatphp.php on line 3


mit diesem Code :


PHP:
javascript:openWindow('/chat/flashchat.php?username=<?=$userdata[user_name];?>&password=<?=$logincheck[1];?>&lang=gm', 600,550)


und mit diesem Code:


PHP:
<?php echo "javascript:openWindow('/chat/flashchat.php?username=" . $userdata[user_name] . "&password=" . $logincheck[1] . "&lang=gm', 600,550)"; ?>


gibt er mir nur das aus :


"javascript:openWindow('/chat/flashchat.php?username=" . $userdata[user_name] . "&password=" . $logincheck[1] . "&lang=gm', 600,550)";


auf Grund von echo denke ich...
 
Zurück