Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.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
Javascript JSON对象显示控制台中的对象,但也包含php脚本返回的字符串中的“未定义”_Javascript_Php_Jquery_Json - Fatal编程技术网

Javascript JSON对象显示控制台中的对象,但也包含php脚本返回的字符串中的“未定义”

Javascript JSON对象显示控制台中的对象,但也包含php脚本返回的字符串中的“未定义”,javascript,php,jquery,json,Javascript,Php,Jquery,Json,我有一个php脚本,可以查询数据库中的一些值,并将它们放入json字符串中 <?php if (isset($_POST['name']) === true && empty($_POST['name']) === false) { include_once("../php_scripts/connect.php"); $arr = array(); if ($result = $mysqli->query("SELECT due_date

我有一个php脚本,可以查询数据库中的一些值,并将它们放入json字符串中

<?php

if (isset($_POST['name']) === true && empty($_POST['name']) === false) {
    include_once("../php_scripts/connect.php");

    $arr = array();
    if ($result = $mysqli->query("SELECT due_date FROM payment_due_dates WHERE client_id = '" . $_POST['name']. "'")) {
        $rowCount = $result->num_rows;

        echo '[';
        $i = 0;
        while ($row = $result->fetch_assoc()) {
            if ($i <= $rowCount - 2){
                echo json_encode($row);
                echo ',';
            }else{
                echo json_encode($row);
            }
            $i++;
        }
        $result->free();
    }
    echo ']';   
}

?>
并且,当它将值添加到选择框时,也会添加文本“未定义”。因此,“我的选择”框中的选项显示为:

未定义

2013-11-13

2013-11-13

2013-11-13

我假设它可能与里面的原型阵列有关,但我不确定它是如何到达那里的。在这方面还是个新手。这是我的控制台日志。还有,有没有更好的方法可以从php查询中加载选择选项

event.returnValue is deprecated. Please use the standard event.preventDefault()
instead. jquery.js:5
[Object, Object, Object]
0: Object
1: Object
2: Object
length: 3
__proto__: Array[0]
希望,您的jquery版本很旧,因此您可以下载最新的jquery版本并将其包含到您的文件中

下载:

或者,您可以包括以下内容

 <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
试试这个

var output = '';
$.each(obj, function(key, val){
  if (typeof (val.due_date) != undefined) { 
    output += '<option>' + val.due_date + '</option>';
  }
});

您可能还希望选择唯一的到期日

用空白值初始化变量输出

var output= "";

不要手动创建自己的JSON字符串!创建一个数组,然后使用。我会在php中创建JSON数组,回显它,然后解析它吗?抱歉,ajax还是新手。是的,这就是它的工作原理。另外,您只需执行$.postrl、{your:data}、functiond{}、'json';“json”命令jQuery为您解析json。非常感谢您的建议!只需初始化var输出就可以修复它。谢谢有时候只是一些小事。
var output = '';
$.each(obj, function(key, val){
  if (typeof (val.due_date) != undefined) { 
    output += '<option>' + val.due_date + '</option>';
  }
});
var output= "";