gpt4 book ai didi

php - 在 Yii Framework 中处理输出

转载 作者:可可西里 更新时间:2023-10-31 22:45:49 26 4
gpt4 key购买 nike

我有一个 ajax 提交按钮,如下所示,

    echo CHtml::ajaxSubmitButton(
'>', $this->createUrl('/shop/category/nextCategory&id=16&store=true&gift_store='.$_GET['gift_store'].'&startValue='.$start_value.'&endValue='.$endValue), array(
'type'=>'GET',
'update'=>'#test',
'beforeSend' => 'function(){
alert("beforeSend");
}',
'complete' => 'function(){
alert("complete");
}',
)
);

在我在 Controller 中的操作中,我按如下方式使用了 reder partial,

$this->renderPartial('view',array('model'=>$this->loadModel()),false,true);

由于我已将 processOutput 设置为 true,ajax 提交按钮工作正常。但它继续执行(我点击的次数)。我希望它在单击提交按钮时只执行一次。如果有人可以帮助我解决这个问题,那就太好了。我一整天都在努力解决这个问题。

最佳答案

好的,我解决了这个问题。发生的事情是,ajax 请求是根据 ID 触发的。每次通过 ajax 重新加载 div 时,都会加载一个新的委托(delegate)/事件,指向与他之前的委托(delegate)相同的 ID。因此,当您实际点击按钮时,两个代表都会完成他们的工作,因为两者都与点击的按钮相匹配。

这个问题有两种解决方案。一个是每次生成按钮时都有一个唯一的 id,如下所示,

array('id' => 'next-category-'.uniqid());

另一种方式,我就是这样解决的,

array("id"=>"next-category", "live"=>false);

live: bool 值,事件处理程序是否应附加 live/delegate 或 direct 样式。如果未设置,将使用 liveEvents。将其提供给提交按钮即可解决。

关于php - 在 Yii Framework 中处理输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11861189/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com