gpt4 book ai didi

javascript - 无法从 PHP 数组中检索数据,该数组由使用 JQuery Ajax 的 function() 返回

转载 作者:行者123 更新时间:2023-12-03 01:39:45 24 4
gpt4 key购买 nike

我有一个“点击监听器”,它调用并向函数“getModalData”发送一个 userId 参数,然后该函数将一个数组值返回到变量“arrayedUserData”。

$('body').on('click', '.openModal', function () {
var userId = $(this).val(),
btnText = $(this).text(),
btnClass = '',
colorCode = '',
arrayedUserData = getModalData(userId);

if (btnText === "Delete") {
btnClass = 'danger';
colorCode = '#d9534f';
} else {
btnClass = 'warning';
colorCode = '#f0ad4e';
}

$('#actionBtn').removeClass().addClass('btn btn-' + btnClass).text(btnText);
$('#modalTitle').text('Confirm ' + btnText);
$('#S-modalbody p').text('Are you sure you want to ' + btnText + ' user: ');
$('#S-modalbody h4').css('color', colorCode).text(userId + " - " + arrayedUserData.LastName + ", " + arrayedUserData.FirstName);

});

这是函数“getModalData”。 Ajax“成功”返回的 php 数组将被传递给函数返回的变量“UserData”。

function getModalData(passedUserId) {
var UserData;
$.ajax(
{
type: "POST",
url: "get/get_modal_data.php",
data: { passedUserId: passedUserId },
dataType: "json",
success: function (data) {
UserData = data;
}
}
);
return UserData;
}

这是“get_modal_data.php”。

<?php
include "../includes/connect.php";

if (isset($_POST['passedUserId'])) {
$UserId = mysqli_real_escape_string($con, $_POST['passedUserId']);

$getUserData = mysqli_query($con, "SELECT * FROM tblUserAccounts WHERE uaUserId = '".$UserId."'");
$uaRow = mysqli_fetch_assoc($getUserData);

$UserDataArr = array("UserId" => $uaRow['uaUserId'],
"EmailAddress" => $uaRow['uaEmailAddress'],
"FirstName" => $uaRow['uaFirstName'],
"LastName" => $uaRow['uaLastName'],
"BirthDate" => $uaRow['uaBirthDate'],
"Address" => $uaRow['uaAddress'],
"Gender" => $uaRow['uaGender'],
"ContactNumber" => $uaRow['uaContactNumber'],
"BloodTypeId" => $uaRow['uaBloodTypeId'],
"AccountStatus" => $uaRow['uaAccountStatus'],
);


echo json_encode($UserDataArr);
exit();
}
?>

控制台上出现此错误:

Uncaught TypeError: Cannot read property 'LastName' of undefined get_user_accounts.js:66

这是 get_user_accounts.js 的第 66 行,它出现在“点击监听器”上。

$('#S-modalbody h4').css('color', colorCode).text(userId + " - " + arrayedUserData.LastName + ", " + arrayedUserData.FirstName);

但是,我很困惑,因为 php 数组出现在浏览器的网络响应上:

Successful Connection{"UserId":"1","EmailAddress":"paulanselmendoza@gmail.com","FirstName":"Paul Ansel","LastName":"Mendoza","BirthDate":"1998-12-17","Address":"Phase 1B Block 8 Lot 20 Olivarez Homes South, Sto. Tomas, Binan City, Laguna","Gender":"Male","ContactNumber":"2147483647","BloodTypeId":"0","AccountStatus":"ACTIVE"}

最佳答案

您是否看到在 JSON 数据之前收到:Successful Connection ?您必须删除它,否则它将是无效的 JSON 响应。您共享的代码没有特定的内容。

我相信您必须检查您的数据库连接,在成功连接时,它被设置为输出成功连接,这会破坏您的响应。请删除那段代码。

include "../includes/connect.php";

它可以是这样的:

$conn = mysqli_connect() or die("Error");
echo "Successful Connection";

关于javascript - 无法从 PHP 数组中检索数据,该数组由使用 JQuery Ajax 的 function() 返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50905486/

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