Php jqueryajax总是失败
我想检查人们在表单输入文本中输入的数字是否已经在db中 表单(index.php):Php jqueryajax总是失败,php,jquery,ajax,onkeyup,Php,Jquery,Ajax,Onkeyup,我想检查人们在表单输入文本中输入的数字是否已经在db中 表单(index.php): 函数numerovalida(numerov){ 如果(numerov100){alert(“Número Inválido!”)$('numero').val(“”);numero.focus();$('enviar').prop(“disabled”,true);} 否则{ if(!IsNum(numerov)){alert(“Número Inválido!”);$('numero').val(“”);
函数numerovalida(numerov){
如果(numerov<1 | | numerov>100){alert(“Número Inválido!”)$('numero').val(“”);numero.focus();$('enviar').prop(“disabled”,true);}
否则{
if(!IsNum(numerov)){alert(“Número Inválido!”);$('numero').val(“”);numero.focus();$('enviar').prop(“disabled”,true);}
否则{
$.ajax({
url:“verifica.php”,
类型:“post”,
数据:$(“#inscreversortio”).serialize(),
成功:功能(数据){
$(“#msgNumero”).html(数据);
},
错误:函数(xhr){
$(“#msgNumero”).html(“错误!!!”;
}
});
}
}
}
您没有在verifica.php脚本中定义$MySQLi。
当您通过ajax调用脚本时,它看不到以前定义的其他变量。是否有任何服务器控制台错误消息将错误回调更改为error:function(xhr,msg){$(“#msgNumero”).html(“error!!!”+msg);}
并可能会给您一个提示。添加console.log(xhr)代码>到您的错误
回调。然后穿过这个物体,看看你有什么。可能是PHP错误,在这种情况下将在返回的错误对象中报告。是否有任何服务器控制台错误消息?否=/将错误回调更改为error:function(xhr,msg){$(“#msgNumero”).html(“error!!!”+msg);},它可能会给您一个提示,只需告诉我错误:PConsole error:POST 500(内部服务器错误)jquery.js:8706 send jquery.js:8706 x.extend.ajax jquery.js:8136$.ajax jquery.validate.js:1094 numerovalida VM481:10 onkeyup
<script>
function numerovalida(numerov) {
if (numerov < 1 || numerov > 100) { alert("Número Inválido!"); $('#numero').val(""); numero.focus(); $( "#enviar" ).prop( "disabled", true ); }
else {
if (!IsNum(numerov)) { alert("Número Inválido!"); $('#numero').val(""); numero.focus(); $( "#enviar" ).prop( "disabled", true ); }
else {
$.ajax({
url: "verifica.php",
type: "post",
data: $("#inscreversorteio").serialize(),
success: function(data) {
$("#msgNumero").html(data);
},
error: function(xhr) {
$("#msgNumero").html("ERROR!!!");
}
});
}
}
}
</script>
<form action="inscrever.php" method="post" name="inscreversorteio" id="inscreversorteio">
<input type="hidden" id="sorteio" value="<?php echo $_GET['id']; ?>">
<p style="text-align: center; font-weight: bold;">Informe os Dados:</p>
Nome: <input type="text" name="nome" id="nome" maxlength="25" onkeyup="checanome();" /><br />
<div style="float: left;">Número: <input type="text" name="numero" id="numero" style="width: 30px; text-align: center; align: center;" onkeyup="numerovalida(this.value);" /></div>
<div id="msgNumero" name="msgNumero" style="float: left; margin-left: 10px;"></div><p /><br />
<input type="submit" value="Inscrever" id="enviar" name="enviar" disabled />
</form>
<?php
$campo = $_POST['numero'];
$idsn = $_POST['sorteio'];
$consultan = 0;
$sqlvv = "SELECT * FROM `inscritos` WHERE (`id_sorteio` = '". $idsn ."') AND (`numero` = '". $campo ."')";
$resultvv = $MySQLi->query($sqlvv) OR trigger_error($MySQLi->error, E_USER_ERROR);
$consultan = $resultvv->num_rows;
$resultvv->free();
if ($consultan > 0) {
echo 'ERROR: Number Already in DB!';
}
else {
echo "OK: the number isn't in DB yet.";
}
exit();
?>