繁体   English   中英

显示来自Ajax的成功消息

[英]Show succes message from ajax

我有一个问题,所以我创建了一个系统,该数据库在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);
}

因此一切顺利,但是我希望在每次更新后删除一条消息,也要在视图中显示。 请帮我!!! 提前谢谢,我的英语不好意思。

$.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');
            }
        });

您可以将检查文件的响应放在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 ------
        }
    }
})

希望我能帮忙!

我不确定您是否在另一个文件中有回复。 因为您的响应现在在带有代码行的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]");
  });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM