我如何得到一个post变量的值,由php中的ajax发送

时间:2013-08-22 11:38:40

标签: php mysql ajax json

我用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 . ")"
 ?>

4 个答案:

答案 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未定义,那么您的查询将如何运作?

首先,需要解决该未定义的错误,然后检查您的查询。