【发布时间】:2018-06-18 08:33:07
【问题描述】:
我有这个“点击监听器”,它调用并将一个 userId 参数发送到函数-“getModalData”,然后将一个数组值返回给变量-“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();
}
?>
控制台上出现此错误:
未捕获的类型错误:无法读取未定义 get_user_accounts.js:66 的属性“姓氏”
这是 get_user_accounts.js 的第 66 行,出现在“点击监听器”上。
$('#S-modalbody h4').css('color', colorCode).text(userId + " - " + arrayedUserData.LastName + ", " + arrayedUserData.FirstName);
但是,我很困惑,因为 php 数组出现在浏览器的网络响应中:
连接成功{"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"}
【问题讨论】:
-
你从一个异步函数返回数据,所以 indefined 被返回。阅读stackoverflow.com/questions/14220321/…
-
请获取
include "../includes/connect.php";的来源 -
您收到的回复是一个字符串。你是在某处打电话给
JSON.parse(arrayedUserData)却没有发帖吗?
标签: javascript php jquery ajax