0

我对 cakePHP 很陌生,我被困在这里,经过长时间的搜索,我找不到我的解决方案。所以基本上我有一个在 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->input 行时,它确实显示了一些东西。

如何使这个 cakePHP 函数在 jQuery 上工作?或者也许有另一种方法可以做到这一点(但我仍然很好奇如何解决这个问题!)?

谢谢 !

4

3 回答 3

0

所以正如 Raphaël Vigé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);
于 2015-11-15T19:39:41.413 回答
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');
    ?>");  
于 2015-11-16T07:26:45.637 回答
0

我认为您正在寻找的是在 CakePHP 标准中获得一个表格。但是,正如每个人都提到的那样,您不能在 JavaScript 中拥有任何服务器端代码。

我建议,这充其量是非常幼稚的。如果你不知道 CakePHP 的标准,那么用 cakePHP 制作一个带有表单的网页。在浏览器中打开它,通过右键单击并查看源代码来检查其 HTML,然后将该 HTML 复制到您的 jquery 代码中。

这样,您将获得一个 Cake 创建的表单,您可以继续根据需要进行修改。

我不会这样做的。我会使用 Clansi 的解决方案

于 2015-11-16T11:28:27.740 回答