gpt4 book ai didi

php - 对 Ajax 脚本的任何更改都会产生 Uncaught TypeError

转载 作者:行者123 更新时间:2023-11-29 03:42:55 26 4
gpt4 key购买 nike

我在这里绝对疯了..我有一个 ajax.php 文件,用于自动完成名为“联系人”的表中的姓名列表。脚本部分如下:

dispatch('/ajax/contacts/list', 'ajax_list_contacts');
function ajax_list_contacts() {
$user = new User(SessionManagement::get_logged_in());
$gid = $user->get_field('fKeyGroup');

$q_cons = mysql_query("SELECT '_id', CONCAT(first_name, ' ', last_name) AS `Name`
FROM `contacts`
LEFT JOIN `contact_type_options` ON contact_type_options._id = contacts.fKeyContactDetail
WHERE (
contacts.fKeyGroup = '{$gid}' AND contact_type_options.type = '2'
)")
or die(ErrorLog::handle(mysql_error()));

$out = array();
while (($row = mysql_fetch_assoc($q_cons)) != null) {
$out[] = $row;
}

echo json_encode($out);
}

上面的脚本被调用:

$(function() {
$.ajax({
success: function(data) {
var names = [];
data = JSON.parse(data);
for (var i in data) {
names.push(data[i].Name);
}
$('[name=form-referral]').autocomplete(names);
},
url: '/ajax/contacts/list'
});

这非常有效,最初只用于调用具有 contact_type_option = 2 的记录。现在,我想包括所有联系人,而不考虑联系人类型选项。

我曾尝试完全更改代码以仅从“联系人”表中提取所有联系人,我已尝试删除下面显示的脚本部分。我试图将 = '2' 更改为 != '3'(因为只有 1-3 种不同的类型,我不在乎是否包含类型 3)我主要对类型 1 和类型 2 感兴趣,但是如有必要,我会接受 1,2 和 3 ...但是我所做的任何更改都会产生 Uncaught TypeError: Cannot read property '0' of null 错误。我不明白为什么我尝试的都不起作用。

AND contact_type_options.type = '2'

我也试过下面的代码:

dispatch('/ajax/contacts/list', 'ajax_list_contacts');
function ajax_list_contacts() {
$user = new User(SessionManagement::get_logged_in());
$gid = $user->get_field('fKeyGroup');

$q_cons = mysql_query("SELECT `_id`, CONCAT(`first_name`, ' ', `last_name`) AS `Name`
FROM `contacts`
WHERE `fKeyGroup` = '{$gid}'")
or die(mysql_error());

$out = array();
while (($row = mysql_fetch_assoc($q_cons)) != null) {
$out[] = $row;
}

echo json_encode($out);
}

最佳答案

请尝试改变:

CONCAT(`first_name`, ' ', `last_name`)

CONCAT("first_name", ' ', "last_name")

显然这不会返回正确的数据,但它会告诉您数据中是否有非 UTF8 字符,这可能会导致 JSON 编码出现问题,因为 JSON 仅支持 UTF8 字符。

显然,确保您的数据库中的数据是正确的 UTF8 是最佳实践,但如果您需要快速修复,您可以使用 What's this regex doing? 删除非 UTF8 字符。

关于php - 对 Ajax 脚本的任何更改都会产生 Uncaught TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11088427/

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