这是我的代码。
在我的.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按钮时,这不会发送任何内容。实际上,您可以单击按钮直到当天结束时没有任何反应(甚至调试器中的消息都没有)
如果我从按钮中的return false;
删除onClick
,我会点击该按钮,即使不填写必须填写的标题输入,页面也会重新加载。
Ajax的成功不会提醒某事物,在这两种情况下,我的数据库中都没有插入任何内容。
插入查询是正确的,我已经检查过了。
有关如何发送数据和验证的任何想法?
谢谢
答案 0 :(得分:0)
您的validateField()
函数永远不会返回true,因此if(bValidate)
永远不会运行。 Javascript函数返回undefined,除非你明确地返回一些东西,试试这个:
function validateField()
{
var title = document.getElementById('title').value;
if(!title.match(/\S/))
{
//do some alerting
return false;
} esle {
return true;
}
}
答案 1 :(得分:0)
使用以下代码发送请求
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);
}
});
}
}