Übergeben Sie eine JavaScript-Variable über Ajax an PHP

30516
csgk

Ich versuche, eine JavaScript-Variable über Ajax an PHP zu übergeben, damit ich SQL-Abfragen machen kann. Ich rufe die Funktion votepick (id) auf ein Change-Ereignis auf. Funktioniert jedoch nicht und es wird ein Fehler angezeigt. Unrecept ReferenceError: $ ist nicht definiert.

HTML Quelltext:

</tr><select onchange="votepick('1')" name="vote1" id="1"> <option selected disabled>Vote here</option> <option value="0">00 vote</option> <option value="1">01 vote</option> <option value="2">02 vote</option> <option value="3">03 vote</option> <option value="4">04 vote </option> <option value="5">05 vote </option> <option value="6">06 vote</option> <option value="7">07 vote</option> <option value="8">08 vote </option> <option value="9">09 vote</option> <option value="10">10 vote</option> </select> </td> <td><?php include 'phpexample.php';?></td>

JavaScript-Datei:

function votepick(id){ var x = document.getElementById(id).value; //alert(x); $.ajax({ type: "POST", url: 'phpexample.php', data:, success: function(data) { alert("success! X:" + data); }
}); }

PHP-Datei:

<?php if (isset($_GET['voteid'])) { $x = $_GET['voteid']; echo $x; echo "ok"; }else{ echo 'no variable received'; } ?>

-2
Hat 'var' = document.getElementById (id) .value '(vor dem AJAX-Aufruf) den erwarteten Wert? Ƭᴇcʜιᴇ007 vor 10 Jahren 0
Ja, ich habe mit Alarm überprüft. csgk vor 10 Jahren 0

1 Antwort auf die Frage

1
Louis Matthijssen

Ich gehe davon aus, dass Sie diesen Fehler in Ihrem JavaScript-Code erhalten.

Dies liegt daran, dass Sie eine jQuery-Funktion verwenden, die jQuery-Bibliothek jedoch nicht enthalten.

Sie können es einschließen, indem Sie die folgende Zeile in den <head>Abschnitt Ihrer HTML-Datei einfügen:

<script type="text/javascript" src="//code.jquery.com/jquery-2.1.0.min.js"></script> 
Danke, aber keine Variable erhalten ... irgendeine Idee? csgk vor 10 Jahren 0
In Ihrem JavaScript senden Sie Daten mit POST und in PHP rufen Sie Daten mit GET ab. [Was ist der Unterschied] (http://www.w3schools.com/tags/ref_httpmethods.asp)? Sie sollten also in Ihrer PHP-Datei $ _GET in $ _POST ändern. Louis Matthijssen vor 10 Jahren 0
Ja, danke nochmal, aber nichts, keine Variable mehr erhalten .... csgk vor 10 Jahren 0
Nun, Sie zeigen die zurückgegebenen Daten nirgendwo an. Wie können Sie sich also sicher sein? Sie können `alert (" success! ");` In `alert (" success! X: "+ data);` ändern, um die Daten anzuzeigen, die das PHP-Skript zurückgibt. Louis Matthijssen vor 10 Jahren 0
Gib den korrekten Wert zurück. csgk vor 10 Jahren 0
Nach echo $ x; Ich stelle das Echo "ok"; , und meldete es in der Alert-Box mit "success! X:". $ x wird jedoch nicht gedruckt. csgk vor 10 Jahren 0
Funktionierte es vor dem Hinzufügen von `echo" ok ":`? Könnten Sie Ihre Frage mit Ihrem aktuellen Code aktualisieren? Louis Matthijssen vor 10 Jahren 0
Ich habe meinen Code aktualisiert. Ich werde wachsam mit "Erfolg! X:"ok ". Allerdings druckt $ x nicht, wo ich die PHP-Datei in HTML" anrufe ". Ich schreibe nur eine ok-Nachricht in PHP und drucke sie ok, aber $ x wurde nicht gedruckt, es wurde nur keine Variable empfangen. Tnanks wieder! csgk vor 10 Jahren 0
Sie möchten den zurückgegebenen Wert irgendwo in Ihrem HTML-Code anstelle eines Alert-Felds platzieren? Louis Matthijssen vor 10 Jahren 0
Nicht genau. Ich möchte einen Wert an der Stelle drucken, an der ich die PHP-Datei (in HTML) "anrufe". In PHP-Datei möchte ich den ausgewählten Wert (mit JavaSkript) abfragen und dann den Ausgabewert ausdrucken, in dem ich die PHP-Datei "anrufe". Ich hoffe, es ist klar genug meine Erklärung. csgk vor 10 Jahren 0
Oh, wollen Sie die Ausgabe an der Stelle von ` `? Louis Matthijssen vor 10 Jahren 0
Ja. Wie ich schon sagte, als ich nur ein Echo "ok" schrieb; In PHP-Datei, ok drucken Sie es an dieser Stelle, aber nicht $ x. Wenn es einen intelligenteren Weg gibt, schlagen Sie mir bitte vor. csgk vor 10 Jahren 0
Ich glaube nicht, dass Sie voll und ganz verstehen, was AJAX macht. Grundsätzlich rufen Sie das PHP-Skript auf (optional mit einigen Daten, wie die ausgewählte Stimmenanzahl in Ihrem Fall). Das PHP-Skript verarbeitet diese Anforderung (Sie können hier alles tun, beispielsweise die Stimmenanzahl verwenden, um x Stimmen in Ihre Datenbank einzufügen). und geben Sie einige Daten (zum Beispiel "vote successes" mit "echo") an Ihr JavaScript zurück. Dieser Rückgabewert wird in JavaScript in der "data" -Variable gespeichert. Sie können JavaScript verwenden, um es in Ihrer HTML-Seite anzuzeigen. Das PHP-Skript wurde ausgeführt, die Daten sind also verschwunden. Durch das Einbeziehen erhalten Sie nicht die gleichen Daten. Louis Matthijssen vor 10 Jahren 1
Ohhhhh, ich bin neu in Ajax. Ich weiß nicht, dass das so funktioniert. Jetzt habe ich klar verstanden. Danke vielmals. Ich verbringe einen ganzen Tag damit, das auszuprobieren. csgk vor 10 Jahren 0
Schön, dass du es jetzt verstehst. Viel Spaß beim Programmieren! Louis Matthijssen vor 10 Jahren 0