繁体   English   中英

为什么此Javascript函数会警告我的值,但不会返回相同的值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM