[英]Why does this Javascript function alert my value but not return the same value?
我使用的jQuery插件数据表 ,我试图采取fnRender功能的优势,操纵一些数据。
我有一个PHP脚本,该脚本从$ .post返回JSON字符串。 这是我从每个帖子中得到的示例响应: {"description":"myvalue"}
。 我是从Google Chrome开发者工具中获得的。
这是我的帖子功能:
$.post("functions/getDescription.php", {gpn:oObj.aData[1]},
function(data) {
returnedVal = jQuery.parseJSON(data);
var test = returnedVal.description;
//alert(test);
return test;
});
这是我的PHP脚本:
$passedVal = mysql_real_escape_string(($_POST['gpn']));
$descriptionPrint = array('description' => "");
include 'db_include.php';
$getDescription = "SELECT part_number_description, description FROM unit_description
WHERE part_number_description = '$passedVal' ";
$result = mysql_query($getDescription,$db) or die(mysql_error($db));
while ($row = mysql_fetch_array($result)) {
extract($row);
$descriptionPrint = $description;
echo json_encode(array('description' => $descriptionPrint));
}
每个查询仅返回一个值。
每行都会提示正确的值,但返回未定义。
如果我仅用字符串的返回值或任何通用值替换javascript函数,则可以正常工作。
我觉得在这一切中我一定缺少一些愚蠢的东西。 任何帮助深表感谢,并请让我知道如果你需要更多的信息(我知道一些故障排除运行在一个插件类似数据表可以令人沮丧)。 谢谢。
因为$.post
不返回匿名回调函数的返回值,所以您将其作为第三个参数传递给它。
由于Ajax是异步的,因此$.post
甚至在执行回调函数之前返回。
如果要在从服务器取回数据时执行某些操作,则回调函数必须执行该操作(或调用另一个函数来执行此操作)。
这是以下原因不起作用的相同原因:
var were_you_expecting_sunshine = $('button').click(function () {
return "sunshine";
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.