2017-03-18 3 views
0

Ich versuche, eine JavaScript-Variable an ein PHP-Skript senden, verwenden Sie die Variable in meiner SQL-Anweisung, und senden Sie die Ergebnisse zurück zu JavaScript.Senden Sie eine JavaScript-Variable an PHP, verwenden Sie diese Variable in einer SQL-Anweisung und zeigen Sie PHP-Ergebnisse

JavaScript:

// Sending a variable to PHP script 
var variableToSend = '30'; 
$.post('myPHPscript.php', {variable: variableToSend}); 

// Using the variable from earlier, run PHP script to get results 
var data_from_ajax; 
$.get('http://www.mywebsite.com/myPHPscript.php', function(data) { 
data_from_ajax = data; 
}); 

// Display results on the document 
var displayResult = document.getElementById('displayResult'); 
displayResult.innerHTML = data_from_ajax; 

PHP:

<?php 
// Connection stuff 
$conn = new mysqli($servername, $username, $password, $dbname); 

// Get the sent variable 
$variable = $_POST['variable']; 

// Run SQL statement 
$sql = " 
    SELECT column 
    FROM myDatabase 
    WHERE id=$variable 
"; 

$result = $conn->query($sql); 

// Send results back to JavaScript 
while($row = $result->fetch_array(MYSQLI_ASSOC)) { 
    echo $row["column"]; 
} 
?> 

Der Grund, dass JS einen PHP-Skript ruft, weil ich ein Ereignis-Listener in JS verwendet, um die Variable zu bestimmen, die ich mag senden. Die variableToSend variiert jedes Mal, je nachdem was geklickt wurde, aber ich habe es hier auf eine zufällige Zahl gesetzt.

Ich bin mir bewusst, dass das Problem darin liegt, Variablen an PHP-Skripte im JavaScript zu senden, aber ich bin mir nicht sicher, wie ich dies sonst tun kann, außer .post und .get.

Ich dachte auch über die Verwendung eines AJAX-Anrufs, aber ich war mir nicht sicher, wie das funktionieren würde.

Vielen Dank für alle Hinweise.

+0

Sie bereits 2 Ajax-Aufrufe verwenden. Du solltest nur eine machen – Steve

Antwort

1

Sie verwenden bereits zweimal Ajax über $.post und $.get.

Sie müssen nur die Post-Anforderung zu machen, und zeigt die Antwort:

// Sending a variable to PHP script via ajax post, and display the returned results 
var variableToSend = '30'; 
$.post('http://www.mywebsite.com/myPHPscript.php', {variable: variableToSend}, function(responseFromPhp){ 

    $('#displayResult').html(responsefromPhp); 
}); 
+0

Ich verstehe, was du jetzt meinst, indem Sie Ajax zweimal benutzen. Vielen Dank! – Cait

1

Die Daten, die Sie auf diesen Beitrag Ajax-Aufruf zurückgegeben werden soll. Um es abzurufen, geben Sie die Erfolgsfunktion an.

$.post("test.php", { name: "John", time: "2pm" }) 
    .done(function(data) { 
     alert("Data Loaded: " + data); 
    }); 

und auch einige Validierung nutzen und Flucht vor der Verwendung Postwerte in mysql: http://php.net/manual/en/mysqli.real-escape-string.php

+0

Das hat funktioniert! Ich danke dir sehr. – Cait

Verwandte Themen