在jQuery函数中使用cakePHP中的Form输入

时间:2015-11-15 11:55:25

标签: php jquery forms cakephp cakephp-2.7

我是非常新的蛋糕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上运行? 或许还有另一种方法可以做到这一点(但我仍然很好奇如何解决这个问题!)?

谢谢!

3 个答案:

答案 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的解决方案