0

我用 ajax 将 id 发送到 php 端。php 端应该使用具有此 ID 的 MySql 行来回答。

阿贾克斯:

$.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 变体有什么问题?

谢谢

更新

现在我收到错误消息“200 错误:未调用 jsonCallback”,代码如下:

 <?php
 include('DatabaseConnector.php');
 $array = toString('SELECT * FROM `RMap` WHERE `ID` ='.$_POST["ID"]);
 $json = json_encode($array);
 print $_GET['callback'] . "(" . $json . ")"
 ?>
4

4 回答 4

1

你的代码应该像

$array = toString('SELECT * FROM `RMap` WHERE `ID` =' . $_POST["ID"]);

php中你concat使用.和在javascript中你使用+

于 2013-08-22T11:40:30.990 回答
1

使用点 (.) 代替 +

$array = toString('SELECT * FROM `RMap` WHERE `ID` ='.$_POST["ID"]);
于 2013-08-22T11:41:51.233 回答
0

当您通过 ajax 签入发送数据时firebug console:您将得到的响应IDUndefined

如果ID未定义,那么您的查询将如何工作?

所以首先需要解决那个未定义的错误,然后检查你的查询。

于 2013-08-22T12:03:31.030 回答
0
'SELECT * FROM `RMap` WHERE `ID` ='+$_POST["ID"]

在 PHP 中,您使用(点)而不是(加号)连接字符串。.+

即您的代码应如下所示:

$array = toString('SELECT * FROM `RMap` WHERE `ID` =' . $_POST["ID"]);
于 2013-08-22T11:40:04.507 回答