gpt4 book ai didi

javascript - 通过 ajax 将数组从 PHP 移动到具有有效 JSON 格式的 JS

转载 作者:行者123 更新时间:2023-11-28 12:13:07 25 4
gpt4 key购买 nike

我从 php 的一个数组开始,当通过 ajax 调用时,它看起来像这样:

Array
(
[0] => {id:"12",from:"09:00:00",to:"15:00:00"}
[1] => {id:"13",from:"08:00:00",to:"10:00:00"}
[2] => {id:"12",from:"15:00:00",to:"17:00:00"}
)

PHP 代码

public static function getBookedTime($date) {

$query = "SELECT * FROM booking WHERE cid = ".$_SESSION["cid"]." AND doc_date='".strftime("%Y-%m-%d",strtotime($date))."'";
$result = self::qry($query);


while ($line = mysqli_fetch_array($result, MYSQLI_ASSOC)) {

$obj = "{";
$obj.= 'id:'.'"'.$line["person_id"].'",';
$obj.= 'from:'.'"'.$line["from_time"].'",';
$obj.= 'to:'.'"'.$line["to_time"].'"';
$obj.= "}";

$time_array[] = $obj;

}

print_r( json_encode($time_array) );

}

所以我将 json_encode($myarray) 添加到 PHP 中,并将 JSON.parse(response) 添加到 javascript 中。现在在我的页面中,通过ajax调用后,它看起来像这样:

var booking1 = {id:"12",from:"09:00:00",to:"15:00:00"},{id:"13",from:"08:00:00",to:"10:00:00"},{id:"12",from:"15:00:00",to:"17:00:00"};

问题是,我仍然无法访问任何值。这不是 js 中的有效格式。

使用 JS 或 php,如何使 booking1 看起来像 booking2 (或任何有效格式)?我尝试了 array.push 和大约一千个东西,但它就是不动。

var booking2 = [
{id:"12",from:"09:00:00",to:"15:00:00"},
{id:"13",from:"08:00:00",to:"10:00:00"},
{id:"12",from:"15:00:00",to:"17:00:00"}
];

(jQuery 答案没问题!)

最佳答案

根据您的编辑:您不应尝试在循环中手动构建 json 字符串。相反,将您需要的值添加到数组中并添加它。

另请注意,您需要 echo 而不是使用 print_r(),因为这会使您的 json 无效。

如果您只选择所需的字段,那就更容易了:

public static function getBookedTime($date) {
$query = "SELECT person_id, from_time, to_time FROM booking WHERE cid = ".$_SESSION["cid"]." AND doc_date='".strftime("%Y-%m-%d",strtotime($date))."'";

$result = self::qry($query);

echo json_encode(mysqli_fetch_all($result, MYSQLI_ASSOC));
}

注意:您还应该使用带有绑定(bind)变量的准备语句以避免 SQL 注入(inject)。由于使用的值,这在这里可能是不可能的,但在任何地方使用它总是一个好主意。

关于javascript - 通过 ajax 将数组从 PHP 移动到具有有效 JSON 格式的 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56341906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com