2012-04-13 10 views
2

Ich versuche, jQuery verwenden, um eine Variable zu einer MySQL/PHP-Abfrage zu buchen. Ich habe eine Schaltfläche, class="button" und der Button-Code ist:Verwenden von jQuery zu POST zu MySQL auf klicken

$(".button").click(function(e){ 
    e.preventDefault(); 
    $.post("some.php", { var_today : <?php echo $new_var; ?> }); 
}); 

mit:

if(isset($_POST['var_today'])){ 
echo $_POST['var_today']; 
} 

auf meiner PHP-Seite, und ich bekomme nicht definiert Index: var_today

die Klasse Button-Tag hat eine onclick="window.open('') daran angehängt, und sobald es geklickt hat, bekomme ich "undefined index", da die var_today nicht gepostet wird, was habe ich hier falsch geschrieben?

+1

hinzufügen Zitate um den Wert für 'var_today' ... IE' var_today: "' – gorelative

+0

Auch gibt es keine Notwendigkeit für ein 'onclick =" "' Attribut, wie das ist im Wesentlichen was Die Methode jQuery.click() lautet: – Dunhamzzz

+0

Das ist keine Antwort, und vielleicht verstehe ich Ihren Code falsch, aber beachten Sie, dass Sie niemals einen Code ausführen sollten, der durch einen Javascript - Aufruf erhalten wurde Angreifer zu ersetzen '' mit ' ' –

Antwort

0
{ var_today : "<?php echo $new_var; ?>" } 

Diese funktionieren sollte.

3

Sie benötigen Wert zu zitieren:

$.post("some.php", { var_today : "<?php echo $new_var; ?>" }, 
+0

Ich danke Ihnen für die schnelle Antwort, aber das ändert nicht den undefinierten Index, da der Wert nicht gebucht wird, habe ich eine andere Seite mit der setInterval -Funktion mit einem PHP-Variable und es funktioniert gut. Ich habe auch eine Warnung ausprobiert, wenn ich auf den Knopf klicke, nichts .. –

+1

Zeigen Sie uns Ihre some.php PHP, oder verwenden Sie Firebug, um Ihren Beitrag zu bestätigen? Haben Sie auch eine JavaScript-Funktion definiert, die als returned bezeichnet wird? –

+0

Die Abfrage ist nur eine Auswahl alle aus Tab, wo Regexp^var_today. Ich habe keine zurückgegeben, da ich nichts zurück, nur das Popup, um die Abfrage durchzuführen und –

0

Try this:

$(".button").click(function(e){ 
    e.preventDefault(); 
    $.post("some.php", { var_today: ""}); 
}); 
+0

Wie würde das helfen? Er möchte den Wert posten, keine leere Zeichenfolge. –

+0

Schauen Sie sich das Bearbeitungsprotokoll an, als ich mit dem Schreiben der Antwort begann: ' 'wurde von Jon noch nicht hinzugefügt, also gehe ich davon aus, dass sein Beispiel so lange bestanden hat, wie die Funktion funktioniert – Churk

+0

Ah, ja, die ursprüngliche Frage hat die PHP-Tags nicht angezeigt. :-P –

Verwandte Themen