感谢您阅读我的问题,对不起,如果我的英语不完美。
所以,我的问题是当我通过ajax发送一个带有方法post的表单时,我的页面错误在重新加载时。经过一些测试,我发现如果我使用方法得到,一切正常。我不明白。此外,如果我评论选择部分,它甚至可以用post。
这是我的代码: ajax函数:
function showDispo(){
validate($('#frmUpdateTaux'));
}
function validate(form) {
$.ajax({
url: "updateDispo.php"
, data: $(form).serialize()
, datatype: 'json'
, type: 'post'
, error: function(error, errmsg){
alert(errmsg + ' :=: ' + error.responseText );
}
, success: function(Data) {
location.reload(true);
}
});
}
和我的HTML代码:
<form method="get" id="frmUpdateTaux">
<table border="0" cellspacing="0" cellpadding="2">
<tr>
<td align="left">
<label class="lbl" id="lblMois" name="lblMois" for="lstMois">Mois :</label>
</td>
<td align="left">
<select id="lstMois" name="lstMois" size="1">
<option value="1">Janvier</option>
<option value="2">Février</option>
<option value="3">Mars</option>
</select>
</td>
</tr>
<tr>
<td align="left" colspan="2">
<input type="button" id="btnGenerate" name="btnGenerate" value="Mettre à jour" onclick="showDispo()">
</td>
</tr>
</form>
UpdateDispo.php
require_once("BD.php"); $month= $_POST["lstMois"]; /*query */ $insertNewIndispo ='...' //execution of the query
// QUERY INSERT $ insertNewIndispo ='...'
$ exec = BD :: run($ insertNewIndispo,BD :: QUERY_INSERT,false,false);
仅供参考:我想重新加载页面以显示此页面中运行的查询结果,并通过UpdateDispo.php将新值插入数据库表中
你知道问题的来源吗?
感谢。
答案 0 :(得分:1)
或许你遇到的问题如下:
<form method="get" id="frmUpdateTaux">
如果要发送$ _GET,如何获得$ _POST?
如果您想使用ajax,请尝试:
<form onsubmit="return false;" id="frmUpdateTaux">
然后你可以使用你的ajax代码来捕获你发送的变量。
Btw:对于ajax,我使用以下代码来捕获表单数据:
// First declare your variables by their ID.
var lstMois = document.getElementById('lstMois').value;
var ajax = ajaxObj("POST", "put here your filename(can be the same as the one you are currently browsing)");
ajax.onreadystatechange = function() {
if(ajaxReturn(ajax) == true) {
if(ajax.responseText == "success"){
// Do something.
} else {
// Something went wrong, alert them.
alert("Oops! Something went wrong. Please try again.")
}
}
}
ajax.send("lstMois="+lstMois);
}
然后你应该在你所指的页面中有php代码,这将是这样的:
$lstMois = $_POST['lstMois'];
// Do whatever you want with it.
// If everything went well:
echo "succes";
exit();
ajax代码会看到php已经向它发送了'succes',并且会在
中执行任何操作if(ajax.responseText == "success"){
}
PS。对不起我的英语,我不是母语人士。