我用ajax发送id到php端。 php端应该回答带有此ID的MySql行。
AJAX:
$.ajax({
dataType : 'jsonp',
type: "POST",
async: false,
traditional: true,
jsonpCallback: 'jsonCallback',
contentType: "application/json",
data : {
'ID' : '2'
},
url : 'http://myside.de/sqlExecute.php',
success : function(sqlArray) {
console.log("Eingange " +sqlArray.ID);
console.log("Eingange " +sqlArray.Name);
},
error: function(a){
alert("error");
}
});
PHP:
<?php
include('DatabaseConnector.php');
$array = toString('SELECT * FROM `RMap` WHERE `ID` ='+$_POST["ID"]);
$json = json_encode($array);
print $_GET['callback'] . "(" . $json . ")"
?>
这有效:
<?php
include('DatabaseConnector.php');
$array = toString('SELECT * FROM `RMap` WHERE `ID` =2');
$json = json_encode($array);
print $_GET['callback'] . "(" . $json . ")"
?>
$ _Post变体出了什么问题?
由于
现在我收到错误消息&#34; 200错误:jsonCallback未被调用&#34;,使用此代码:
<?php
include('DatabaseConnector.php');
$array = toString('SELECT * FROM `RMap` WHERE `ID` ='.$_POST["ID"]);
$json = json_encode($array);
print $_GET['callback'] . "(" . $json . ")"
?>
答案 0 :(得分:1)
您的代码应该像
$array = toString('SELECT * FROM `RMap` WHERE `ID` =' . $_POST["ID"]);
在 php 中concat
.
和 javascript ,您使用+
答案 1 :(得分:1)
使用点(。)进行连接,而不是+
$array = toString('SELECT * FROM `RMap` WHERE `ID` ='.$_POST["ID"]);
答案 2 :(得分:0)
'SELECT * FROM `RMap` WHERE `ID` ='+$_POST["ID"]
在PHP中,concatenate字符串带有.
(点)而不是+
(加号)。
即。您的代码应如下所示:
$array = toString('SELECT * FROM `RMap` WHERE `ID` =' . $_POST["ID"]);
答案 3 :(得分:0)
当您通过ajax发送数据时,请检查firebug console
:您的回复是ID
Undefined
。
如果ID
未定义,那么您的查询将如何运作?
首先,需要解决该未定义的错误,然后检查您的查询。