Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将AJAX调用的结果传递给PHP脚本_Javascript_Php_Jquery_Html_Ajax - Fatal编程技术网

Javascript 将AJAX调用的结果传递给PHP脚本

Javascript 将AJAX调用的结果传递给PHP脚本,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我正在开发我的第一个HTML表单,它使用jQuery执行AJAX HTTP POST。当用户对输入文本字段进行更改并在字段外添加选项卡时,它会触发AJAX脚本,该脚本反过来调用执行数据库更新的PHP脚本 AJAX调用可能成功,但数据库更新可能不成功,例如数据库相关错误-我想将PHP脚本的结果插入警报中。我可以回显PHP脚本中的任何错误,但我不确定如何将其放入适当的警报中 以下是我的Javascript: <script type="text/javascript"> $(do

我正在开发我的第一个HTML表单,它使用jQuery执行AJAX HTTP POST。当用户对输入文本字段进行更改并在字段外添加选项卡时,它会触发AJAX脚本,该脚本反过来调用执行数据库更新的PHP脚本

AJAX调用可能成功,但数据库更新可能不成功,例如数据库相关错误-我想将PHP脚本的结果插入警报中。我可以回显PHP脚本中的任何错误,但我不确定如何将其放入适当的警报中

以下是我的Javascript:

 <script type="text/javascript">
   $(document).ready(function() {
    $("#storeManager").change(function(){
        var storeManager = $("#storeManager").val();
        $.post('editProject.php', { storeManager: storeManager, id: '1E1DDA14-D2C6-4FC8-BA5F-DBCCC7ABAF7F' }, function(data) {
            $("#managerRow").addClass("success");

        }).fail(function () {
            // no data available in this context
            $("#managerRow").addClass("danger");
            $("#ajaxAlert").addClass("alert alert-danger");
        });
     }); 
});
</script>
以下是HTML表,其中包含触发AJAX调用的输入字段:

    <table class="table table-striped table-bordered table-hover">
    <tbody>
    <tr>
    <td>Store</td>
    <td>Acme Widgets Inc</td>
    </tr>
    <tr>
    <td>Retailer</td>
    <td>Acme Corp</td>
    </tr>
    <tr>
    <td>Store ID</td>
    <td>9876543</td>
    </tr>
    <tr>
    <td>State</td>
    <td>NSW</td>
    </tr>
    <tr class="" id="managerRow">
    <td>Manager</td>
    <td>

    <input type="text" class="form-control" id="storeManager" name="storeManager" value="Peter Johns">

    </td>
    </tr>
    <tr>
    <td>Phone</td>
    <td>9222 3456</td>
    </tr>
    </tbody>
    </table>

    <div class="" id="ajaxAlert" role="alert"></div>
我想做的是,如果editProject.php脚本存储在$error变量中并可以回显,那么将其插入ajaxAlert并添加一个类:alert:

<div class="alert alert-danger" id="ajaxAlert" role="alert">The error from the database update from the php script appears here</div>
我不熟悉jQuery和AJAX,我尝试过的所有方法都没有用新的类和警报文本更新警报,我似乎找不到类似的示例来演示这一点。

您可以在jQuery中使用append。试用

fail(function () {
        // no data available in this context
        $("#managerRow").addClass("danger");
        //append error to the div using its ID
        $('#ajaxAlert').append('error from database');
    });

试试这个:而不是。失败

    var storeManager = $("#storeManager").val();
    $.post('editProject.php', { storeManager: storeManager, id: '1E1DDA14-D2C6-4FC8-BA5F-DBCCC7ABAF7F' }, function(data) {
        alert(data);

    },function (xhr, data, jx) {
        // the error function should be mentioned like this with comma after success fucntion
        console.log(xhr);//for console logging the error...
         alert(xhr);//NOW you will get data and alert will show...
    });
index.php

----php start---------     
if(isset($_POST['name'])){
    $dbc = mysqli_connect('','','','');
    $sql = "UPDATE accounts set name='".$_POST['name']." WHERE email='".$_POST['mail']."' LIMIT 1";
    if(mysqli_query($dbc, $sql) === true)){
        echo 'success'; exit();
    }else{
        echo 'connection error'; exit();
    }
}
----php end  ---------
<script>
    function test(){
        var formDATA = {
            'name': $('#input_name').val(),
            'mail': $('#input_mail').val()
        };
        $.ajax({
            type: 'POST',
            url: 'index.php',
            data: formDATA,
            success: function(response){
                if(response == 'success'){
                    $('#result').html('Your Update Was Complete');
                }else{
                    $('#result').html();
                }
            }
        });
    }
</script>
<input id="input_mail" type="text" value="">
<input id="input_name" type="text" value="">
<button onclick="test();">Test Ajax</button>
<div id="result"></div>
尝试一些简单的东西,这是ajax和php的一个非常基本的版本,都在一个页面中。因为按钮触发了你甚至不需要表单的函数,但这并不意味着你不应该使用表单。但我把它简单化了,这样你就可以了解一切

很抱歉,当我添加php打开和关闭标记时,它没有显示为代码。另外,不要忘记包含jquery资源

警告:不要像示例那样进行查询,这是一个巨大的安全风险