элементы cakephp и обновление Ajax - PullRequest
0 голосов
/ 24 мая 2011

вот что я пытаюсь достичь ...

У меня есть индексное представление, в котором я использовал хелпер ajax, не один из них, а внешний от http://www.cakephp.bee.pl/

Я успешно создал аккордеон с помощью этого помощника.

теперь внутри аккордеона у меня есть кнопка, которая отправляет форму через ajax.

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

Можно ли это сделать без обновления страницы

AJAX отправить код формы:

    <div class="qnotesform">
<?php echo $this->Form->create('Qnote');?>
<ul class="qnotelist">
<li><?php   echo $this->Form->input('Qnote.subject', array('label'=>'Title', 'rows' => '1')); ?></li>
<li>    <?php   echo $this->Form->input('Qnote.body', array('label'=>'Header', 'rows' => '1')); ?></li> 
<?php   echo $this->Form->hidden('Qnote.user_id', array('value'=>Authsome::get('id'))); ?>
<?php   echo $this->Form->hidden('Step.0.user_id', array('value'=>Authsome::get('id'))); ?>
<li><?php   echo $this->Form->input('Step.0.body', array('label'=>'Steps' ,'class' => 'step',  'rows' => '1')); ?></li>
</ul>

<?php echo $ajax->submit(
'Submit', array(
'url' => array(
'controller'=>'qnotes',
'action'=>'add')
)); 

как мне этого добиться. Может кто-нибудь, пожалуйста, укажите мне правильное направление

еще одна вещь, которую я хочу прояснить. Если я хочу работать на одной странице. и все грубо действие, которое будет использоваться без обновления страницы.

есть ли у кого-нибудь рабочий пример для вышеупомянутых senarios. или позвольте мне сделать это просто. как обновить div без обновления страницы.

Решение:

код

    <?php echo $ajax->submit('Submit', array(
'url'=> array(
'controller'=>'qnotes',
'action'=>'add'),
'update'=>'leftdiv',
'after'=>'$("#accordion").accordion({autoHeight: false, collapsible: true , header: "h3"});alert("after");',
)); 

однако сейчас я столкнулся с другой проблемой, Я обновляю аккордеон, все работает нормально, но как только обновляю аккордеон. аккордеон теряет свой класс стиля и перестает работать. Я вижу только ссылки тогда. Любая идея, как.

1 Ответ

1 голос
/ 24 мая 2011

Кажется, что одна из опций в массиве метода submit - 'complete', что должно позволить вам вызвать функцию js, которая обновит ваш аккордеон:

<?php echo $ajax->submit(
'Submit', array(
'url' => array(
'controller'=>'qnotes',
'action'=>'add',
'complete' => 'updateAccordian(request.responseText)')
));

reuqest.responseText будет содержать ответ от вашего контроллера / действия.

НТН

...