我是非常新的蛋糕PHP我被困在这里,经过长时间的搜索后我找不到我的解决方案。 所以基本上我有一个在cakephp上无处不在的按钮:
echo $this->Form->create('Fightermove');
echo $this->Form->input('direction',array('options' => array('north'=>'north','east'=>'east','south'=>'south','west'=>'west'), 'default' => 'east'));
echo $this->Form->end('Move');
但是当我在jQuery上使用它来动态添加按钮时,它甚至不会出现:
$("#"+(CoordXJQ-1)+"-"+CoordYJQ).append('<?php
echo $this->Form->create('Fightermove');
echo $this->Form->input('direction',array('options' => array('north'=>'north','east'=>'east','south'=>'south','west'=>'west'), 'default' => 'east'));
echo $this->Form->end('Move');
?>');
当我删除Form-&gt;输入行时,它会显示一些内容。
如何让这个cakePHP函数在jQuery上运行? 或许还有另一种方法可以做到这一点(但我仍然很好奇如何解决这个问题!)?
谢谢!
答案 0 :(得分:0)
正如RaphaëlVigée已经说过的那样,你无法在jQuery中运行PHP代码。但是,这是你可以做的:
在您的视图文件(.ctp)中,只需将表单输出到某个隐藏容器中,例如
<div class="hiddenContainer" style="display:none">
<?php
echo $this->Form->create('Fightermove');
echo $this->Form->input('direction',array('options' => array('north'=>'north','east'=>'east','south'=>'south','west'=>'west'), 'default' => 'east'));
echo $this->Form->end('Move');
?>
</div>
然后在您的JavaScript文件中,您可以
var $clone = $( ".hiddenContainer" ).children().clone();
$("#"+(CoordXJQ-1)+"-"+CoordYJQ).append($clone);
答案 1 :(得分:0)
你不能在页面渲染后执行cakephp代码,但你可以在javascript中编写php代码,它将在页面加载时执行。 似乎你的javascript代码有一些引号问题 请尝试下面的代码
$("#"+(CoordXJQ-1)+"-"+CoordYJQ).append("<?php
echo $this->Form->create('Fightermove');
echo $this->Form->input('direction',array('options' => array('north'=>'north','east'=>'east','south'=>'south','west'=>'west'), 'default' => 'east'));
echo $this->Form->end('Move');
?>");
答案 2 :(得分:0)
我认为你要找的是获得CakePHP标准的表格。 但是,正如每个人都提到的那样,简单的JavaScript中没有任何服务器端代码。
我建议,这是极其幼稚的。如果您不了解CakePHP标准,那么使用表单在cakePHP中创建一个网页。在浏览器中打开它,通过右键单击并查看源来检查其HTML,然后在jquery代码中复制该HTML。
通过这种方式,您将获得一个Cake创建的表单,您可以根据需要进行修改。
我不会这样做。我会使用Clansi的解决方案