php - Ajax 结果为数组和 JSON.parse 错误

标签 php jquery ajax

我编写了一个 ajax 请求,数据作为数组返回,以便在时间选择器中使用。

Ajax 调用:

<script type="text/javascript">
$.ajaxSetup({ cache: false });
var consultdate;
var userid;
var cat;
var timezone;
var consultstart;
var consultend;
$('#consultdate').change(function() {
consultdate = $('#consultdate').val();
userid= '<?php echo $user_id;?>';
cat = '<?php echo $category;?>';
timezone = '<?php echo $time_zone;?>';
consultstart = '<?php echo $consultation_start;?>';
consultend = '<?php echo $consultation_end;?>';
//alert(consultdate);
$.ajax({
type: "POST",
url: 'user_date-time_qry.php',
cache: false,
dataType : "text",
data: {consultdate : consultdate, userid : userid, cat : cat, timezone : timezone, consultstart : consultstart, consultend: consultend },
success: function(data)
{
if (!$('input#consulttime').data("set")) {
alert(data);
var result = $.parseJSON(data);
$("input#consulttime").val('');
$('input#consulttime').prop("disabled", false);
$('input#consulttime').timepicker('remove').timepicker({'timeFormat': 'h:i A','disableTextInput': true, 'minTime':result[0] ,'maxTime': '<?php echo $consultation_end; ?>','step': 15,'disableTimeRanges':result[1]});
   }
},
error : function() {
alert("Error while loading data");
       }
   });
});
</script>

我希望 var result 是一个 json 编码值的数组,它在 minTime 中用作 result[0] ,在 disableTimeRanges 中用作结果[1]

user_date-time_qry.php的相关部分如下:

更新:user_date-time_qry.php

 $consultation_start = '"'.$consultation_start. '"';
    $consult_time_UTC = '['.implode(',',$consult_time_UTC).']'; 
    $prebooked_time_UTC = $consult_time_UTC ; //require format as ['8.30 AM', '8.45 AM'], ['12:15 PM', '12:30 PM']

    echo $result = array($consultation_start, $prebooked_time_UTC);
$result = array($consultation_start, $prebooked_time_UTC);
foreach ($result as $results) {
echo $results; 
}

在控制台中 获取“06:00 PM”的值[] “06:00 PM”是值 1 && [] 是值 2。如何在 ajax 响应中将其作为单独的值获取?

更新:

由于我无法理解它,因此尝试使用 2 个 ajax 调用的另一个解决方案。无论如何,感谢您的所有反馈。

最佳答案

更改此行

echo $result = array($consultation_start, $prebooked_time_UTC);

到此

$result = array($consultation_start, $prebooked_time_UTC);
echo json_encode($result);

实际上,要在 PHP 中获取 JSON 格式的数据,您只需将所有数据存储在 array 中并使用 json_encode 函数来转换它们。

关于php - Ajax 结果为数组和 JSON.parse 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47427247/

相关文章:

javascript - 查看jstree搜索结果

Ajax http 500错误Azure不在本地

php - Kohana:不能重新声明类

javascript - 如何将点击事件附加到以编程方式创建的 jquery 对象?

php - 表格中断 html php,php 的发票报告

jquery - vscode中的引用路径是什么

jquery - 与 Post 进行交叉调用,但在飞行前失败

jquery - 如何通过ajax从另一个域加载css文件?

javascript - 将 HTML 中的下拉列表与其他 HTML 页面链接

php - 是否可以在 PHP 中定义接口(interface) Singleton?