研究员。
我只找到this reference我的问题,这没有用。
我正在使用内置 $ this-> Js->提交
的蛋糕php我想做什么:
我的逻辑开始的网站包含一个包含我的数据的表。在这个网站上我还有几个包含表单的元素,并由一个模态窗口打开(jquery ui对话框)
那么我的问题是什么?
一切都会发射两次。
**代码**
由于我的所有其他代码似乎都在工作,我只会粘贴 $ this-> Js->提交部分代码,所以你们可以专注于似乎是问题。
如果需要任何其他代码,请写信给我,我很乐意在编辑部分粘贴更多代码。
echo $this->Js->submit(' ', array (
'label' => 'Send',
'onsubmit'=>"event.returnValue = false; return false;",
'div' => array('class' => 'send_button'), //style submit to be an image
'url' => array('controller' => 'records', 'action' => 'append_new_record'),
'type' => 'json',
'success' => '
if (data.success == true) {
$("#element_add").dialog("close");
var newLine = data.recordLine;
$("#content").find("table tbody").find("tr:first").before(newLine);
}
else {
$("#element_add").html(data.form);
}
',
'buffer' => false, //true did not help (refreshes the whole web site)
'before' => '
if (!checkAdd()) { //validation (custom js function)
return false;
}
'
));
我尝试了什么
EDIT1这里是生成的HTML代码
</script><div class="send_button"><input id="submit-1182269389" type="submit" value=" "/></div><script type="text/javascript">
$("#submit-1182269389").bind("click", function (event) {$.ajax({beforeSend:function (XMLHttpRequest) {
if (!checkAdd()) {
return false;
}
}, data:$("#submit-1182269389").closest("form").serialize(), dataType:"json", label:"Send", onsubmit:"event.returnValue = false; return false;", success:function (data, textStatus) {
if (data.success == true) {
$("#element_add").dialog("close");
var newLine = data.recordLine;
$("#okno").find("table tbody").find("tr:first").before(newLine);
}
else {
$("#element_add").html(data.form);
}
}, type:"post", url:"\/my_app\/records\/append_new_record"});
return false;});
</script></form>
EDIT2 1.尝试不能工作
<script type="text/javascript">
$('#addForm').submit(function(event) {
event.preventDefault();
});
</script>
所以这会阻止整个ajax的事情(刷新页面后数据会附加到表中,但仍然是两次)
答案 0 :(得分:0)
我通过一个很好的解决方法解决了这个问题,所以如果有人提供信息,为什么这样做会让我很高兴。
我的解决方案:
添加了隐藏输入
$this->Form->input('submit_type', array('id'=>'add_submit_type', 'type'=>'hidden', 'value'=>0));
之前我添加了这段代码
var value = $("#add_submit_type").val();
if (value == 1) {
$("#add_submit_type").val("0");
} else {
$("#add_submit_type").val("1");
}
在我的PHP中,如果$ this-&gt; request-&gt; data的submit_type == 0,我不允许创建对象。