我完全被困住了。每次尝试通过对话框提交时,我都会收到错误"语法错误:意外的令牌<"。开发控制台中没有任何错误,或者至少没有显示任何内容。PHP 部分似乎工作正常,但我认为那里可能存在问题,因为 jquery 没有抛出任何错误。
当用户提交地址更改时,查询会检查是否存在匹配的 ID 号,然后执行相应的脚本;如果存在,则更新,否则插入。
jQuery
$('#ChangeOfAddress').click(function() {
//change of address dialog
$( "#ChangeAddressDialog" ).dialog({
width:500,
modal:true,
closeOnEscape:true,
buttons: [
{ text: "Ok", type: "submit", click: function() {
var parcel_id = $('#ParcelId').val();
var address_1 = $('#Address1').val();
var address_2 = $('#Address2').val();
var city = $('#City').val();
var state = $('#State').val();
var zip = $('#Zip').val();
var country = $('#Country').val();
$.ajax({
url: "classes/add-address.php?parcel_id=" + parcel_id + "&address_1=" + address_1 + "&address_2=" + address_2 + "&city=" + city + "&state=" + state + "&zip=" + zip + "&country=" + country,
type: "GET",
data: { parcel_id : parcel_id, address_1 : address_1, address_2 : address_2, city : city, state : state, zip : zip, country : country },
dataType: 'json',
error: function(SMLHttpRequest, textStatus, errorThrown){
alert("An error has occurred making the request: " + errorThrown);
},
success: function(result){
//do stuff here on success such as modal info
//$("#main_form").submit();
$(this).dialog("close");
alert("Change of address has been submitted!");
}
});
}
},
{ text: "Close", click: function() { $(this).dialog( "close" ); } } ]
});//end dialog
});//end change of address click function
.PHP:
<?php
require_once('../config.php');
$parcel_id = isset($_GET['parcel_id']) ? $_GET['parcel_id'] : null;
$address1 = isset($_GET['address_1']) ? $_GET['address_1'] : null;
$address2 = isset($_GET['address_2']) ? $_GET['address_2'] : null;
$city = isset($_GET['city']) ? $_GET['city'] : null;
$state = isset($_GET['state']) ? $_GET['state'] : null;
$zip = isset($_GET['zip']) ? $_GET['zip'] : null;
$country = isset($_GET['country']) ? $_GET['country'] : null;
if(isset($_GET['parcel_id'])) {
$db = new ezSQL_mysql(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
$parcelExists = $db->get_var("select count(*) as count from change_of_address where parcel_id=" . $_GET['parcel_id']);
echo $parcelExists;
$db->debug();
if ($parcelExists == 1){
//update db information
$result = $db->query("UPDATE change_of_address
SET address_1='" . $address1 . "',
address_2='" . $address2 . "',
city='" . $city . "',
state='" . $state . "',
zip='" . $zip . "',
country='" . $country . "'
WHERE parcel_id=" . $parcel_id);
$db->debug();
if ($result == TRUE) {
echo '{"success":true}';
} else {
echo '{"success":false}';
}
$db->debug();
} else {
//insert into db
$result = $db->query("INSERT INTO change_of_address (parcel_id, address_1, address_2, City, State, Zip, Country)
VALUES ('" . $parcel_id . "','" . $address1 . "','" . $address2 . "','" . $city . "','" . $state . "','" . $zip . "','" . $country . "')");
$db->debug();
if ($result == TRUE) {
echo '{"success":true}';
} else {
echo '{"success":false}';
}
$db->debug();
}
}
?>
您需要在"网络"选项卡中查看 AJAX 结果。也许您的 PHP 脚本返回 404 错误或数据库错误等,而 json 无法解析结果,因此会引发此错误。