Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP视图中的Javascript导致控制器操作被调用两次_Php_Javascript_Cakephp - Fatal编程技术网

CakePHP视图中的Javascript导致控制器操作被调用两次

CakePHP视图中的Javascript导致控制器操作被调用两次,php,javascript,cakephp,Php,Javascript,Cakephp,我有一个带有动作和相关视图的cakephp控制器。控制器中的操作在调用时会将一些数据保存到数据库(它会创建一个新记录)。我注意到,由于某种原因,创建了2条记录。这两条记录之间唯一的区别是date_created字段相差几秒钟,因此我知道第二条(重复)记录是在第一条记录之后几秒钟创建的。我已经能够将问题缩小到一些javascript,这些javascript包含在标签内的视图中。我在视图顶部包含一个.js文件,使用- echo $this->Html->script('https://

我有一个带有动作和相关视图的cakephp控制器。控制器中的操作在调用时会将一些数据保存到数据库(它会创建一个新记录)。我注意到,由于某种原因,创建了2条记录。这两条记录之间唯一的区别是date_created字段相差几秒钟,因此我知道第二条(重复)记录是在第一条记录之后几秒钟创建的。我已经能够将问题缩小到一些javascript,这些javascript包含在标签内的视图中。我在视图顶部包含一个.js文件,使用-

echo $this->Html->script('https://link.to.externalSite.com/script.js', array(
  'inline' => true
));
当我将'inline'=>true更改为false时,问题就消失了,正如我所期望的,只有1条记录被添加到数据库中。但是,出于我的目的,我需要脚本集inline=>true

单击表单上的submit按钮时会触发view页面中的标记,如下所示-

<script type="text/javascript" charset="utf-8">
    var myVar = new .......... ({trigger: 'submitBtn'});
</script>

var myVar=新。。。。。。。。。。({触发器:'submitBtn'});

我想知道这是否是因为脚本是从外部url加载的?如果我在我的webroot中包含脚本,我会避免这个问题吗?我在stackoverflow上遇到过一些问题,关于JS脚本导致控制器操作被调用两次的类似问题,他们讨论了深度链接的问题,但是我不知道该怎么办。

如果inline设置为true,当您在浏览器中查看源代码时,脚本文件包含了多少次?可能是由多个视图元素添加的?

谢谢。。当我在safari中“查看源代码”时,我只看到一次包含的脚本文件。如有帮助,表单中使用的submit按钮图像也包含在外部源中。谢谢你的回复。你有没有可以和我们分享的直播页面?嗨-不,对不起,我现在正在本地开发,无法分享直播页面。