我编写了一个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结果是一个json编码值的数组,在minTime
中用作result[0]
和disableTimeRanges
用作result[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&amp;&amp; []是值2.如何在ajax响应中将其作为单独的值?
更新
由于我无法理解它,尝试使用2个ajax调用的另一个解决方案。非常感谢所有反馈。
答案 0 :(得分:1)
更改此行
echo $result = array($consultation_start, $prebooked_time_UTC);
到这个
$result = array($consultation_start, $prebooked_time_UTC);
echo json_encode($result);
实际上,要在JSON
中以PHP
格式获取数据,您只需将所有数据存储在array
中,然后使用json_encode
函数进行转换。
答案 1 :(得分:0)
问题在于:
echo $result = array($consultation_start, $prebooked_time_UTC);
你无法回复array
,而是必须使用json_encode
,如:
echo json_encode(array($consultation_start, $prebooked_time_UTC));
并且不要将值包装在引号中,如:
'"'.$consultation_start. '"'
答案 2 :(得分:0)
简单方法: -
数据将作为JSON的字符串表示形式返回,并且您不会将其转换回JavaScript对象。将 dataType 设置为&#39; json &#39;让它自动转换。
例如: -
$.ajax({
type: "POST",
url: 'user_date-time_qry.php',
cache: false,
dataType : "json",
data: {consultdate : consultdate, userid : userid, cat : cat, timezone : timezone, consultstart : consultstart, consultend: consultend },
success: function(data)
{
//ENTER CODE
},
error : function() {
alert("Error while loading data");
}
});
答案 3 :(得分:0)
使用这种方式的Anoter示例: -
user_date-time_qry.php 文件全部转换为 json 格式,使用以下示例将所有数组转换为 json格式:
<?php
$marks = array(
"mohammad" => array (
"physics" => 35,
"maths" => 30,
"chemistry" => 39
),
"qadir" => array (
"physics" => 30,
"maths" => 32,
"chemistry" => 29
),
"zara" => array (
"physics" => 31,
"maths" => 22,
"chemistry" => 39
)
);
echo json_encode($marks);
?>
这些响应提供(所有数据转换为JSON格式): -
{ “穆罕默德”:{ “物理”:35, “数学”:30, “化学反应”:39}, “卡迪尔”:{ “物理”:30, “数学”:32, “化学反应”:29 }, “ZARA”:{ “物理”:31, “数学”:22, “化学反应”:39}}