这应该很简单,你点击一个链接(一个按钮)然后它会问你一个问题 - 是或否,你回答它应该这样做。单击之前单击的按钮具有字段的数据ID:
未收到
弹出窗口出现,您要么回答是,要么回答是。如果您回答是,则应将您选择的订单放入“过去订单”页面/列表中,如果您说“否”,则订单应保留在仪表板列表中。
正在发生的事情是弹出窗口出现,无论你是否推或是,一个项目被放入过去的订单,它不是你想要放在那里的项目。它是仪表板上订单页面列表中的第一个。我已经在View页面,控制器页面和javascript页面上发布了关于此按钮的部分。有没有人看到任何不能加起来的东西?
//$(function() {
function initConformOn(){
$('.btn_confirm').confirmOn({
questionText: 'Have You Received the Goods?',
textYes: 'Yes',
textNo: 'No'
}
,'click', function(e, confirmed)
{
//console.log();
var id= $(this).data("id");
var received = $(this).data("received");
if(confirmed) $(this).remove();
$.ajax({
type: 'POST',
url: '<?php echo $this->webroot?>staff_orders/change_received',
data: {id:id,received:received},
cache: false,
dataType: 'HTML',
success: function (data){
//alert(data);
location.reload();
}
});
});
}
//});
</script>
我在另一个与此相关的脚本中发现了更多代码 - 它可能是一个问题,也可能是一个或另一个问题。
dataIndex: 'isreceived',
header: 'Received Status ',
filter: {
type: 'list',
options: ['0', '1']
},
renderer: function(val, meta, record){
// alert(record.data.status);
if(record.data.isreceived == '1'){
return '<span style="color:#329933;font-weight:bold">Received</span>';
}
else if(record.data.super_admin_status != '1')
{
return '<span style="font-weight:bold">Not Received</span>';
}
else{
return '<span style="color:#ED2326;font-weight:bold"><a href="javascript:void(0);" class="btn_confirm" data-id="'+record.data.id+'" data-received="'+record.data.isreceived+'">Not Received</a></span>';
}
}
},
控制器代码
function change_received()
{
$id = $_REQUEST['id'];
$recieve = $_REQUEST['received'];
$recieve = $recieve == 0 ? 1 : 0;
if(($id!="")&&($recieve!=""))
{
//$this->Order->update(array('Order.isreceived'=>$recieve),array('Order.id'=>$id));
$this->data['Order']['isreceived'] = $recieve;
$this->Order->id = $id;
if($this->Order->save($this->data)){
$sql = "Update crontabs set crontabs.email_status = '1' where crontabs.order_id='{$id}' and crontabs.email_status='0'";
$this->Crontab->query($sql);
echo 'true';
}
else{
echo 'false';
}
exit;
//$this->redirect('/staff_orders/list_all');
}
}