错误不会显示在ajax提交的页面上

时间:2016-12-12 12:13:45

标签: javascript php jquery mysql ajax

我正在尝试使用ajax,php,mysql使表插入新行。到目前为止,我能够使表格和字段中的正确数据提交并将数据保存到数据库。

现在我正在尝试进行一些验证并显示错误(如果有的话)但我没有在页面上看到错误..我只在开发者控制台下看到它们。

这是我在表格上的插入行

<tr id="new_row">
    <td></td>
    <td><input type="text" id="new_name"></td>
    <td><input type="email" id="new_email"></td>
    <td>
         <input type="button" id="insert" value="Insert Row" onclick="insert_row()">
    </td>
</tr>

ajax 部分

function insert_row()
{
    var name=document.getElementById("new_name").value;
    var email=document.getElementById("new_email").value;
    $.ajax
    ({
          type:'post',
          url:'insert.php',
          data:{
               insert_row:'insert_row',
               name_val:name,
               email_val:email
          },
          success:function(response) {
               if(response!="")
               {
                   var id=response;
                   var table=document.getElementById("user_table");
                   var table_len=(table.rows.length)-1;
                   var row = table.insertRow(table_len).outerHTML="<tr id='row"+id+"'><td id='name:"+id+"'>"+name+"</td><td id='email:"+id+"'>"+email+"</td>";

                   document.getElementById("new_name").value="";
                   document.getElementById("new_email").value="";
               }
          }

    });
}

PHP 部分insert.php

if (isset($_POST['insert_row'])) {

     $name=$_POST['name_val'];
     $email=$_POST['email_val'];

     if($name < 4) { echo 'please enter the name';exit(); }
     if($email < 4) { echo 'please enter email';exit(); }

    $value = $pdo->prepare('SELECT * FROM client WHERE name= ?');
    $value->bindParam(1, $name, PDO::PARAM_STR);
    $value->execute();
    $result = $value->fetch();


    $value1 = $pdo->prepare('SELECT * FROM client WHERE email= ?');
    $value1->bindParam(1, $email, PDO::PARAM_STR);
    $value1->execute();
    $result1 = $value1->fetch();

    if ($result > 0) 
    {
        echo 'Name already exist';
        exit();
    }
    elseif ($result1 > 0) 
    {
        echo 'Email already exist';
        exit();
    }       
    else
    {
          // query for insert here

我在网页上看不到任何错误。你能告诉我如何通过它们吗?

1 个答案:

答案 0 :(得分:1)

例如,您可以在此处添加div:

<td>
      <input type="button" id="insert" value="Insert Row" onclick="insert_row()">
       <div id="error" style="display:none"></div>
</td>
你的ajax中的

    success:function(response) {
                       if(response!="")
                       {
                           var id=response;
                           var table=document.getElementById("user_table");
                           var table_len=(table.rows.length)-1;
                           var row = table.insertRow(table_len).outerHTML="<tr id='row"+id+"'><td id='name:"+id+"'>"+name+"</td><td id='email:"+id+"'>"+email+"</td>";

                           document.getElementById("new_name").value="";
                           document.getElementById("new_email").value="";
                          //just in case the error has been shown before
                           $('#error').hide()
                       }else{

                       $('#error').html(response);
                       $('#error').show()
                  }

我希望这会让你继续下去。