我有一个问题,所以我创建了一个在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提前,对不起我的英语。
答案 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]");
});
});