У меня возникли проблемы с кодом ниже при попытке отправить форму динамически. Функция serialize () прекрасно работает, за исключением случаев, когда в поле формы есть апостроф.
Из других мест, где я смотрел онлайн, похоже, что serialize () должен об этом позаботиться. По какой-то странной причине мне это не удается.
Вот мой код:
//Submit Edit Facility form data
$("#Facility_Edit").click(function() {
var dataString = $("#edit_facility").serialize();
alert (dataString); //return false;
$.ajax({
type: "POST",
url: "process.php",
data: dataString,
success: function() {
$('#submitresults').html("<div id='message' class='alert-message fade in' data-alert='alert'></div>");
$('#message').html("<b>Account has been edited successfully!</b>")
.append("<p>If you would like to make more changes, please do so below. Otherwise, please click <a href='facility.php?facility_id=<?php echo $facility_id;?>'>here to view the account.</p>")
.hide()
.fadeIn(1500, function() {
$('#message').prepend("<a class='close' href='#'>×</a>");
setTimeout('window.location="facility.php?facility_id=<?php echo $facility_id;?>&action=edit"', 3000)
});
}
});
return false;
});
Это вывод, который я получаю с апострофом:
Facility_Name=Coeur+d'Alene+Homes+&Facility_Type=Assisted+Living+Facility&
Facility_Address=624+W+Harrison&Facility_Beds=&Facility_City=Coeur+d'Alene&
Facility_State=ID&Facility_Zip=83814&Facility_OC=Tambra&Facility_Phone=&Facility_HCC=&
Facility_Fax=&Facility_Team=CDA&Facility_DC=&facility_facilitypreference_status=&
Facility_ID=1305&Submit_Type=editfacility
Обратите внимание, что после удаления апострофа код работает отлично и отправляется правильно. Как я могу это исправить?
РЕДАКТИРОВАТЬ: Добавлен код стороны PHP
$facility_name = htmlspecialchars(trim($_POST['Facility_Name']));
$facility_type = htmlspecialchars(trim($_POST['Facility_Type']));
$facility_address = htmlspecialchars(trim($_POST['Facility_Address']));
$facility_zip = htmlspecialchars(trim($_POST['Facility_Zip']));
$facility_oc = htmlspecialchars(trim($_POST['Facility_OC']));
$facility_hcc = htmlspecialchars(trim($_POST['Facility_HCC']));
$facility_phone = htmlspecialchars(trim($_POST['Facility_Phone']));
$facility_beds = htmlspecialchars(trim($_POST['Facility_Beds']));
$facility_fax = htmlspecialchars(trim($_POST['Facility_Fax']));
$facility_dc = htmlspecialchars(trim($_POST['Facility_DC']));
Я также пробовал:
$facility_name = htmlspecialchars(addslashes(trim($_POST['Facility_Name'])));
$facility_type = htmlspecialchars(trim($_POST['Facility_Type']));
$facility_address = htmlspecialchars(addslashes(trim($_POST['Facility_Address'])));