Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么这个Javascript函数会提醒我的值,但不返回相同的值?_Php_Jquery_Mysql_Ajax_Datatables - Fatal编程技术网

Php 为什么这个Javascript函数会提醒我的值,但不返回相同的值?

Php 为什么这个Javascript函数会提醒我的值,但不返回相同的值?,php,jquery,mysql,ajax,datatables,Php,Jquery,Mysql,Ajax,Datatables,我正在使用jquery插件,并试图利用fnRender函数来处理一些数据 我有一个php脚本,它从我的$.post返回一个JSON字符串。下面是我从每个帖子中得到的一个示例响应:{description:myvalue}。这是我从谷歌Chrome开发者工具上得到的 以下是我的帖子功能: $.post("functions/getDescription.php", {gpn:oObj.aData[1]}, function(data) { returnedVal = jQuery.pa

我正在使用jquery插件,并试图利用fnRender函数来处理一些数据

我有一个php脚本,它从我的$.post返回一个JSON字符串。下面是我从每个帖子中得到的一个示例响应:{description:myvalue}。这是我从谷歌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";
});

欢迎来到异步的精彩世界!你不能那样做,好像人们都不看《圣经》,我觉得我会因为这个问题被杀。我对jquery/javascript还是相当陌生,只是想得到一些反馈。我通过反复试验学习得更好。很抱歉冒犯你,谢谢。我还有其他几种方法可以实现我的目标。我只是在修修补补,它让我觉得我可以提醒这些值,但不能使用它们。Ajax-异步,有意义。