【问题标题】:How to return an error status on an ajax call in PHP?如何在 PHP 中的 ajax 调用中返回错误状态?
【发布时间】:2015-12-25 07:19:31
【问题描述】:

我有这个脚本代码,它运行良好,

代码

<script>
    function ajob(){
        var a3=a.value
        var a4=b.value
        var a5=c.value
        if(a3!='' && a4!=''){
            $.ajax({
                type:"get",
                url:"addj.php?content=" + a3 + "," + a4 + "," + a5
            });
         lod();
        }else{alert('Fill all fields')}
    }
</script>

<form>
    <table>
        <tr><td>Job Name:</td>
            <td><input id="a" name="jname" type="text"></td>
        </tr>
        <tr><td>Job Description:</td>
            <td><input id="b" name="jd" style="margin: 2px 0 2px 0;" type="text"></td>
        </tr>
        <tr><td>Status:</td>
            <td>
                <select id="c" name="jstat" style="width:100%; height: 26px" >
                    <option>Active</option>
                    <option>Not Active</option>
                </select>
            </td>
        </tr>
    </table>
</form>

我想知道的是如何知道我的addj.php 文件中是否有错误?这是我的addj.php

addj.php

require 'con.php';
$pieces = explode(",", $_GET['content']);
$jname=$pieces[0];
$jd=$pieces[1];
$jstat=$pieces[2];
$query=mysqli_query($con,"INSERT INTO job(job_name,job_desc,status) values('$jname','$jd','$jstat') ");

如何从我的 PHP 代码返回失败状态以及如何在我的 java 脚本代码中处理该错误?

【问题讨论】:

  • 您可以使用控制台查看 AJAX 或 Javascript 中的任何错误
  • 旁注:这不是一个好主意 -> $query=mysqli_query($con,"INSERT INTO job(job_name,job_desc,status) values('$jname','$jd','$jstat') "); SQL-injection 容易。
  • 无论您在 addj.php 中回显什么,都会在 ajax 响应中捕获,因此在 addj.php 文件中回显可能的错误。
  • @SHAZ 我怎样才能做出 ajax 响应?
  • @Rasclatt 我怎样才能让我的$query 好?

标签: php mysql ajax


【解决方案1】:

使用成功或错误回调函数并将数据输出到控制台。

function ajob(){
    var a3=a.value
    var a4=b.value
    var a5=c.value
    if(a3!='' && a4!=''){
        $.ajax({
            type:"get",
            url:"addj.php?content=" + a3 + "," + a4 + "," + a5,
            success: function(dataReturn, textStatus, jqXHR) {
                console.log(dataReturn);
            },
            error: function(jqXHR,textStatus,errorThrown){
                console.log(textStatus,errorThrown);
            }
        });
     lod();
    }else{alert('Fill all fields')}
}

【讨论】:

    【解决方案2】:

    使用这个

                $.ajax({
                    type:"get",
                    url:"addj.php?content=" + a3 + "," + a4 + "," + a5,
                    success: function(data) { alert("succsess") },
                    error: function (xhr, ajaxOptions, thrownError) {
                            alert(xhr.status + " : " + xhr.responseText);
    
                     }
                });
    

    【讨论】:

      【解决方案3】:

      您可以使用浏览器的控制台。尝试以下链接,一步一步。

      Why the Ajax script is not running on IIS 7.5 Win 2008 R2 server?

      【讨论】:

        【解决方案4】:

        您可以使用此代码来捕获任何 ajax 错误。

        $.ajax({
          type:"get",
          url:"addj.php?content=" + a3 + "," + a4 + "," + a5
        }).fail(function(error){
          alert(error);
        });
        

        希望对你有帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-10-13
          • 1970-01-01
          • 2011-09-16
          • 1970-01-01
          • 2017-04-23
          • 1970-01-01
          • 2011-01-16
          • 2011-08-11
          相关资源
          最近更新 更多