這裏是我的代碼。表格重新加載頁面無需發送提交數據
在我的.js文件:
function Sendit()
{
bValidate = validateField();
if(bValidate)
{
var title = $("#title").val();
theUrl = 'index.php';
params = '';
params += 'action=Send';
params += '&title='+title;
$.ajax ({
url: theUrl,
data: params,
async:true,
success: function (data, textStatus)
{
//do smth
alert('went well');
}
,
error: function(jqXHR, textStatus, errorThrown)
{
alert(errorThrown);
}
});
}
}
function validateField()
{
var title = document.getElementById('title').value;
if(!title.match(/\S/))
{
//do some alerting
return false;
}
else
{
return true;
}
}
在我的index.php文件:
<form action="" method="post" name="myform" id="myform"" >
Title: <input class="" type="text" name="title" value="" id="title"/> <br>
<input type="submit" value="Submit" onClick="javascript:Sendit();return false; ">
</form>
<?php
if ($_REQUEST["action"]=='Send')
{
$title = $_REQUEST["title"];
$sql = "INSERT INTO ...
$retval = $mysqli->query($sql, $conn);
if(! $retval) {
echo('Could not enter data insert: ' . mysql_error());
}
else
{
//inform that everything went well
}
?>
單擊該按鈕sunmit時這不會發送任何事情。事實上,你可以點擊按鈕,直到一天結束時沒有任何事情發生(甚至沒有調試器中的消息)
如果我從按鈕中的onClick
中刪除return false;
,我點擊按鈕和頁面重新加載,即使沒有在其中擁有。
阿賈克斯的成功不提醒的事情,在這兩種情況下,以填補標題輸入填充,沒有東西插在我的數據庫。
插入查詢是正確的,我檢查了它。
如何發送數據和驗證任何想法?
感謝
它不會改變任何事情:( –