【问题标题】:Jquery Ajax always fails [closed]Jquery Ajax 总是失败 [关闭]
【发布时间】:2014-07-01 13:06:44
【问题描述】:

我想检查人们在表单中输入文本的数字是否已经在数据库中。

表格(index.php):

<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>

verifica.php:

<?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();

?>

该脚本在 ajax 中总是失败并显示错误消息:“ERROR!!!”

【问题讨论】:

  • 是否有任何服务器控制台错误信息
  • 将您的错误回调更改为error: function(xhr,msg) { $("#msgNumero").html("ERROR!!!"+msg);},它可能会给您一个提示。
  • console.log(xhr); 添加到您的error 回调中。然后穿过这个对象,看看你有什么。可能是 PHP 错误,在这种情况下会在返回的错误对象中报告。
  • 是否有任何服务器控制台错误消息?否 =/ 将你的错误回调更改为错误: function(xhr,msg) { $("#msgNumero").html("ERROR!!!"+msg);} 它可能会给你一个提示告诉我错误: P
  • 控制台错误:POST localhost/sorteio/verifica.php500(内部服务器错误) jquery.js:8706 发送 jquery.js:8706 x.extend.ajax jquery.js:8136 $.ajax jquery.validate.js :1094 numerovalida VM481:10 onkeyup

标签: php jquery ajax onkeyup


【解决方案1】:

您没有在您的 verifica.php 脚本中定义 $MySQLi。 ajax调用脚本时,看不到之前定义的其他变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-28
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 2020-04-06
    • 2016-05-10
    相关资源
    最近更新 更多