Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.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 在Ajax成功中获取未定义的数据或双引号_Php_Json_Ajax - Fatal编程技术网

Php 在Ajax成功中获取未定义的数据或双引号

Php 在Ajax成功中获取未定义的数据或双引号,php,json,ajax,Php,Json,Ajax,我已经通过Ajax将数据发送到PHP脚本,并希望以JSON编码返回多个数据。不幸的是,当我想要访问第一个和第二个数据时,我只得到双引号(“)。我尝试了StackOverflow的几个例子,但没有成功,我也不知道为什么。下面的部分是我从数据类型开始,然后是成功 dateType: "json", success:function(data) { alert(data.first); if(data.last) {

我已经通过Ajax将数据发送到PHP脚本,并希望以JSON编码返回多个数据。不幸的是,当我想要访问第一个和第二个数据时,我只得到双引号(“)。我尝试了StackOverflow的几个例子,但没有成功,我也不知道为什么。下面的部分是我从数据类型开始,然后是成功

dateType: "json",
   success:function(data)
   {
        alert(data.first);
        if(data.last)
           {
              $('#urlfull').val(data.last);

           }else{
              // Fade in
              alert(data.last);
           }
   }
接下来是PHP脚本,我在其中尝试了StackOverflow的标记解决方案

$output =  array('first'=>'Steven',
                 'last'=>'Spielberg',
                 'address'=>'1234 Unlisted Drive');
echo json_encode($output,JSON_FORCE_OBJECT);
然而,警报返回(data.first)是未定义的,然后其他时候它是双引号(在我进行更改之前)。但我不知道为什么。我想理解并解决。但我找不到问题,因为除了我,似乎没有人有这个问题


提前感谢您的帮助。

如果您想真正了解发生了什么,请不要使用
alert()
;使用
console.log()
并查看开发人员控制台。您希望看到的是实际数据,而不是它的某个字符串强制版本。如果您试图实际了解代码中发生了什么,请不要使用警报。这样说,console.log将
数据记录下来,而不是
数据。首先
:在尝试访问之前,找出其中的实际内容这是
.first
属性。我认为这是一个输入错误:
dateType
不是
dataType
。如上所述,你说的“只获取双引号”是什么意思?JSON字符串必须是双引号,那么你想从哪里获取单引号呢?话虽如此,JSON对象中的引号应该是无关的(特别是在PHP端,您将使用
json\u decode(string)
获取真实对象,而在JS端,您将使用
json.parse(string)
获取真实对象,因此引号符号应该是不相关的)@Syscall,您解决了问题。这是打字错误!谢谢。