2016-04-16 1 views
0

Also habe ich diese Serie von Radio-Buttons durch ein PHP-Skript erzeugt, die eine Javascript-Funktion aufrufen, wenn sie angeklickt erhalten:Pass PHP-String als Parameter für JavaScript-Funktion in PHP-Skript namens

<?php 
    $databases = mysqli_query($link, "SHOW DATABASES"); 
    while($row = mysqli_fetch_row($databases)) { 
     $db = $row[0]; 
     echo "<input type='radio' name='database' id='".$db."' onclick='displaydbcontent(".$db.")'>";  
    } 
?> 

die JavaScript-Funktion dann

function displaydbcontent(dbid) { 
    alert("This is a test"); 
    alert(dbid); 
} 

Nun, egal, was der Inhalt der Variable $ db ist, nach dem Anzeigen der ersten Alarm Drucken „Dies ist ein Test“, der zweite immer druckt „[: den Inhalt der Zeichenfolge alarmieren hat Objekt HTMLInputElement] ".

Ich bin mir ziemlich sicher, dass es alles eine Frage der Anführungszeichen ist, aber ich sehe keine Möglichkeit, um es zu umgehen.

Und für diejenigen, die sich darüber wundern, dass es nicht viel mit meinem Problem zu tun hat, wurde die Variable $ link initialisiert und funktioniert ordnungsgemäß.

+0

gleiche ID und einen Namen für verschiedene HTML-Elemente auf der Seite Hinzufügen ist kein gutes Gefühl .. –

+0

Weil Sie ein Objekt vorbei sind die Funktion, keine Zeichenfolge. – dman2306

+0

Der Name ist der gleiche, die ID ist immer anders. –

Antwort

0

Pass this.id als Argument, das id Eigentum des clicked-element

onclick='displaydbcontent(this.id)'>"; 

zurück Wie Sie $db als Argument sind vorbei, stellt es das Element. Element mit id wird zu den globalen Variablen.

function callMe(elem) { 
 
    console.log(elem); 
 
}
<script src="http://gh-canon.github.io/stack-snippet-console/console.min.js"></script> 
 
<div id='elem' onclick='callMe(elem)'>Hello!!!!!</div>

Edit: Oder echo '<input type="radio" name="database" id="'.$db.'" onclick="displaydbcontent(\'$db\')">';

+0

Gerne helfen! Bitte [akzeptieren und up-stimme] (http://meta.stackexchange.com/questions/23138/how-to-accept-the-answer-on-stack-overflow) die beste Lösung, die den Zweck gelöst hat :) __Happy coding! __ – Rayon

+0

Nur um zu verdeutlichen, funktioniert die this.id-Lösung, die andere nicht seit Javascript-Anführungszeichen mit php's versauen. –

+0

Überprüfen Sie die Bearbeitung! – Rayon