0

CSFR保護のためのCakePHPのセキュリティコンポーネントをAJAXで動作させようとしています。-ビューを含む -Controller (アーティスト/DJ が持っているショーのすべての日付を保存するため) があり
ます。ArtistsDatesaddedit()

このビューは、jQuery AJAX を介して jQuery Modalbox に読み込まれます。(シンプルモーダル)

 function artist_dates(request){
   .
   .
    if(request == 'load'){
        $.ajax({
            type: 'post',
            url: $('base').attr('href') + '/artist_dates/addedit/'+artist_id,
            success: function(html){

                $('#dialog').html(html);
                $('#dialog').modal({
                    modal: false,
                    maxHeight:'500px',
                    minHeight:500,
                    minWidth:750,
                });
            }
        });
    }
   .
   .
 }

このビューでは、私のフォームはaddedit_daterow_form要素としてレンダリングされます。この要素は、データまたは「NEW」モードで呼び出されます。データが提供されている場合、要素はデータを表示し、隠し編集フォームを含みます。「NEW」モードで呼び出された場合、空のフォームを返します。したがって、この要素は - モデル内のすべてのデータ行に対してレンダリングされますArtistDate(新しいものを追加するためにさらに 1 つ!)

(これはビューのスクリーンショットです: http://i.stack.imgur.com/Ye10v.png )

Security- コンポーネントは に含まれていArtistDatesControllerます。残念ながら、- ビューにも- 要素に$this->Form->request->paramsも含まれていません - jQuery-AJAX-Function で何かを変更する必要がありますか?[_Token]addeditaddedit_daterow_form

-- 編集 1:これは私のフォームコードがどのように見えるかです:

<?php echo $this->Form->create('ArtistDate', array('controller' => 'artist_dates','action' => 'addedit', 'id' => 'artistDateForm_'.$date_nr)); ?>
        <?php echo pr($this->Form->request->params); ?>
        <?php echo $this->Form->input('ArtistDate.'.$date_nr.'.id',array('type' => 'hidden', 'value' => $date['ArtistDate']['id'])); ?>
        <?php echo $this->Form->input('ArtistDate.'.$date_nr.'.artist_id',array('type' => 'hidden', 'value' => $date['ArtistDate']['artist_id'])); ?>

        <div class="date">
            <?php echo $this->Form->input('ArtistDate.'.$date_nr.'.date', array('type' => 'text','label' => 'Date <span style="font-weight:normal; float:right;">[DD.MM.YYYY]</span>','value' => (!empty($date['ArtistDate']['date']) ? date('d.m.Y',strtotime($date['ArtistDate']['date'])) : ''))); ?>
            <?php echo $this->Form->input('ArtistDate.'.$date_nr.'.date_end', array('type' => 'text','label' => 'Enddate <span style="font-weight:normal; float:right;">[DD.MM.YYYY]</span>','value' =>(!empty($date['ArtistDate']['date_end']) ? date('d.m.Y',strtotime($date['ArtistDate']['date_end'])) : ''))); ?>
        </div>
        <div class="venue">
            <?php echo $this->Form->input('ArtistDate.'.$date_nr.'.venue', array('type' => 'text','value' => $date['ArtistDate']['venue'])); ?>
            <?php echo $this->Form->input('ArtistDate.'.$date_nr.'.city', array('type' => 'text','value' => $date['ArtistDate']['city'])); ?>
        </div>
        <div class="link">
            <?php echo $this->Form->input('ArtistDate.'.$date_nr.'.venuelink', array('type' => 'text','label' => 'Link <span style="font-weight:normal; float:right;">Venue</span>','value' => $date['ArtistDate']['venuelink'])); ?>
            <?php echo $this->Form->input('ArtistDate.'.$date_nr.'.ticketslink', array('type' => 'text','label' => 'Link <span style="font-weight:normal; float:right;">Tickets</span>','value' => $date['ArtistDate']['ticketslink'])); ?>
        </div>
        <div class="actions">
            <?php echo $this->Html->link('','',array('class' => 'buttonsave','onclick' => "artistdate_handling('".$date_nr."','save'); return false;", 'style' => $display_exists, 'escape' => false, 'title' => 'Save')); ?>               
            <?php echo $this->Html->link('','',array('class' => $approveclass, 'onclick' => "artistdate_handling('".$date_nr."','confirm'); return false;", 'style' => $display_exists, 'escape' => false, 'title' => 'Confirm Show')); ?>
            <?php echo $this->Html->link('','',array('class' => 'buttondelete','onclick' => "artistdate_handling('".$date_nr."','delete'); return false;", 'style' => $display_exists, 'escape' => false, 'title' => 'Delete Show')); ?>
            <?php echo $this->Html->link('','',array('class' => 'buttonadd','onclick' => "artistdate_handling('".$date_nr."','add'); return false;", 'style' => $display_new, 'escape' => false, 'title' => 'Add Show')); ?>
        </div>
        <div style="clear:both"></div>
    <?php echo $this->Form->end(); ?>

よろしくお願いします!

4

1 に答える 1

0

それがどのように機能するかを考え出しました。
使用する

 $.ajax({
    type: 'get'
 .
 .
 });

トークンを含むフォームを返します。

于 2013-06-20T03:55:04.217 に答える