Использовать входные данные формы из cakePHP в функции jQuery

Я очень новичок в 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->.

Как заставить эту функцию cakePHP работать на jQuery?
Или, может быть, есть другой способ сделать это (но мне все еще интересно, как это решить!)?

Спасибо !

0

Решение

Так как Raphaël Vigée уже сказал, вы не можете запустить код PHP внутри jQuery. Но вот что вы можете сделать:

В вашем файле представления (.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);
0

Другие решения

Вы не можете выполнить код cakephp после рендеринга страницы, но вы можете написать код php в javascript, и он будет выполняться при загрузке страницы.
Кажется, ваш код 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');
?>");
0

Я думаю, что вы ищете, чтобы получить форму в стандартах CakePHP.
Однако, как уже упоминалось, вы просто не можете иметь никакого кода на стороне сервера в JavaScript.

Я предлагаю, и это в лучшем случае очень детски. если вы не знакомы со стандартами CakePHP, создайте веб-страницу в cakePHP с помощью формы. откройте его в браузере, проверьте его HTML-код, щелкнув правой кнопкой мыши и просмотрите исходный код, а затем скопируйте этот HTML-код в код jquery.

Таким образом, вы получите форму, созданную Cake, и вы можете изменить ее в соответствии со своими потребностями.

Я бы, например, не делал это так. Я бы использовал решение Кланси

0
По вопросам рекламы [email protected]