我通过AJAX生成模态表单内容,并允许用户在将修改后的数据提交到数据库之前更新多个输入/选择字段。这段代码可以在我的网站上的许多表单中正常工作,但从今天开始,一个特定的输入字段不再通过AJAX提交,而同一表单中的所有其他输入字段都可以正常工作。
输入字段dataHolidex
包含一个5位数的字母代码(没有数字,没有符号,只是普通的拉丁字符)我需要选择正确的数据库,但似乎输入值在AJAX之前没有被提取呼叫。 Chrome Debug表示提交的$_POST['Holidex']
为空,即使正确填充了相应的输入字段,表明将输入字段值移交给AJAX $ _POST调用时出现问题。
表单内容(输入字段有值)
<div class=\"col-md-4\">
<!-- Holidex -->
<label>Holidex:</label>
<div class=\"input-group\">
<span class=\"input-group-addon\"><i class=\"fa fa-database\"></i></span>
<input type=\"text\" class=\"form-control\" value=\"$holidex\" id=\"dataHolidex\" name=\"dataHolidex\" size=\"\" />
</div>
<!-- /.holidex code -->
</div>
AJAX调用使用新的表单值
更新数据库var holidex_code = document.getElementById("dataHolidex").value;
$.ajax({
url: "../../plugins/MySQL/ajax_action.php",
type: "POST",
async: true,
data: {
action:"update_email",
Holidex: holidex_code,
CRS:$("#dataCRS").val(),
Arrival:$("#dataArr").val(),
Departure:$("#dataDep").val(),
Room:$("#dataRoom").val(),
GuestNat:$("#dataNat").val(),
GuestTitle:$("#dataGuestTitle").val(),
GuestFN:$("#dataGuestFN").val(),
GuestLN:$("#dataGuestLN").val(),
MBR_Lvl:$("#dataMBRlvl").val(),
Email:$("#dataEmail").val()
}, //your form data to post goes here as a json object
dataType: "html",
success: function(data) {
$('#poststay_output').html(data);
drawVisualization();
},
error: function(data) {
console.log(err);
}
});
代码是正确的,并且在整个网站上运行良好,我没有对服务器进行任何更改,也不知道任何升级,字面上没有改变。任何人都知道这可能是什么?
编辑:
删除了jQuery代码以获取Holidex
变量并将其替换为纯JavaScript。结果是一样的,交换时变量是空的......