2016-11-08 3 views
0

Ich versuche, Daten mit AJAX zu einer PHP-Seite (die eine Datenbank abfragt) zu senden und bestimmte Werte zurückgeben. Ich werde dann die Ergebnisse anzeigen.Rückgabe mehrerer PHP-Variablen aus SQL-Abfrage mit AJAX

Ich habe mehrere Beispiele gefunden, wie Daten mit AJAX übertragen werden können. Das ist nicht mein Problem. So erhalten Sie die Mehrfachergebnisse einer SQL-Abfrage auf die ursprüngliche Seite zurück.

page2.php

$prod01 = $_REQUEST['prod01']; 
$prod02 = $_REQUEST['prod02']; 

$cost01 = mysqli_fetch_array(mysqli_query($db,"SELECT `cost`,`cost2` FROM `info` WHERE `blah`='".$prod01."'")); 
$cost02 = mysqli_fetch_array(mysqli_query($db,"SELECT `cost`,`cost2` FROM `info` WHERE `blah`='".$prod02."'")); 

$getcost01 = $qty01 * $cost01[0]; 
$getcost02 = $qty02 * $cost02[0]; 

$foo = array('result01' => $getcost01, 'result02' => $getcost02); 
echo json_encode($foo); 

page1.php

var prod01 = $("#prod01").val(); 
var prod02 = $("#prod02").val(); 


$.ajax({ 
type: "POST", 
url: "page2.php", 
dataType: 'json', 
data : { prod01 : 'pro01', prod02 : 'prod02'}, 
cache: false, 
success: function(result){ 
    $('.showit01').text(result.result01); 
    $('.showit02').text(result.result02); 
} 
}); 

Das Ergebnis der oben ist:

$getcost01 
$getcost02 

nicht das erwartete Ergebnis SQL aus der Datenbank.

Wenn ich navigieren Sie zu "/page2.php?prod01=ABC & Prod02 = DEF" zeigt es, wie erwartet:

{"result01":"100","result2":"200"} 
+0

Haben Sie die AJAX-Anfrage/-Antwort in den Entwicklertools des Browsers gesehen? Haben Sie die jQuery-Bibliothek in das Projekt aufgenommen? Werden Fehler gemeldet? Laufen Sie das auf einem Webserver? –

+0

Sie wissen, dass Sie dies mit nur einer Abfrage tun können, oder? –

+1

Auch das saugt: http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php?rq=1 – AbraCadaver

Antwort

0

scheint es ein Problem mit der Ajax war. Ich änderte

data : { prod01 : 'pro01', prod02 : 'prod02'}, 

zu

var dataString = 'prod01='+ prod01 +'&prod02='+ prod02; 

$.ajax({ 
type: "POST", 
url: "page2.php?", 
dataType: 'json', 
data : dataString , 
cache: false, 
success: function(result){ 
    $('.showit01').text(result.result01); 
    $('.showit02').text(result.result02); 
    } 
}); 

ich meine Ajax gehe davon wurde nicht richtig formatiert? Ich kann es nicht erklären.

Verwandte Themen