显示来自ajax的成功消息

时间:2015-05-15 13:08:31

标签: javascript php jquery ajax php-5.3

我有一个问题,所以我创建了一个在onChange选择框时在数据库中更新一行的系统。一切顺利,但如果更新成功,我想删除成功消息。

我的观点:

<form action="" id="updateStatus" method="post">
    <select id="statusSelect"
            name="{{ gift.id_instant_gagnant }}"
            class="form-control"
            onChange="updateCadeauStatus({{ gift.id_instant_gagnant }})">
            {% for key,statut in form_logistique.statut.choices %}
                <option value="{{ key }}"
                    {% if gift.etat == key %}selected="selected"{% endif %}>
                    {{ statut }}
                 </option>
            {% endfor %}
   </select>
</form>
 <script>
    function updateCadeauStatus(id) {
        var id = id;
        var selectedName = $("#statusSelect option:selected").val();
        var url_deploy = 'http:localhost/updateStatus'
        console.log(id);
        console.log(selectedName);
        $.ajax({
            url: url_deploy,
            type: "POST",
            async: true,
            data: { id_cadeau:id, id_status:selectedName}
        });
    }
</script>

控制器:

public function updateStatus(){
    $iGiftId    = $_POST['id_cadeau'];
    $iNewStatus = $_POST['id_status'];
    $bUpdate = $this->updateStatusByGiftId($iGiftId, $iNewStatus);
    return $this->render('logistique.twig');

}

模特:

public static function updateStatusByGiftId($iGiftId, $iStatusId){
    $request = sprintf( ' UPDATE `%s` set etat = %d WHERE id = %d ', $table, $iStatusId, $iGiftId);

    return Mysqli::query($request, $database);
}

所以一切顺利,但我想在每次更新后删除一条消息,也会在视图中显示。请帮我!!! Thx提前,对不起我的英语。

3 个答案:

答案 0 :(得分:3)

$.ajax({
            url: url_deploy,
            type: "POST",
            async: true,
            data: { id_cadeau:id, id_status:selectedName},
            success : function(data){
                console.log('success');
            },
            error: function(){
                console.log('error');
            }
        });

答案 1 :(得分:3)

您可以删除检查文件在ajax上的响应。

$.ajax({
    url: url,
    type: "POST",
    ...
    success: function(response){
        window.alert(response);
    }
})

更具体地说,如果您只想在成功更改行时提供消息。修改验证文件(url :)并仅在成功时打印一个消息..

还有其他方法可以做到这一点..

您可以打印“消息ID”并使用脚本获取它并发送消息:

$.ajax({
    url: url,
    type: "POST",
    ...
    success: function(response){
        if(response == '1'){
            window.alert('Successfully changed!!');
        }else if(response == '0'){
            $("#foo").html("Error, not changed :(");
        }else{
            ------ something else ------
        }
    }
})

希望我能帮忙!

答案 2 :(得分:3)

我不确定你的回复是否在另一个文件中。 现在你的回答是在代码行的var data中:
}).done(function(data){

$.ajax({
  url: url_deploy,
  type: "POST",
  async: true,
  data: { id_cadeau:id, id_status:selectedName}
}).done(function(data){
  $("[SuccesDiv]").append("[Succes MSG]");
});

[ - ]之间的文字是将你自己的元素或数据放在那里。

[编辑]

我确实看起来不错......

你没看到它什么时候改变 为此,请执行以下操作:

$("select").on("change", function(){
  $.ajax({
    url: url_deploy,
    type: "POST",
    async: true,
    data: { id_cadeau:id, id_status:selectedName}
  }).done(function(data){
    $("[SuccesDiv]").append("[Succes MSG]");
  });
});