2017-03-16 15 views
4

CakePHPのテーブルアンカーにデータ属性を挿入する方法を探しています。自動的に次のコードを生成しますが、データターゲット属性に変更する方法はありません。CakePHP、jQuery - データ属性をアンカーに追加

私がこれを達成したい理由は、同じページの異なるdivにリンクしていて、がページの再ロードを防ぐためですです。 jQueryからpreventDefault()を挿入する必要がありますか?もしそうなら、そうする方法は?

これは私の現在のコードです:ここでは

<?php foreach ($servers as $server): ?> 
    <tr> 
    <td><?= $this->Number->format($server->id) ?></td> 
    <td><?= h($server->url) ?></td> 
    <td><?= h($server->description) ?></td> 
    <td><?= h($server->Timestamp) ?></td> 
    <td class="actions"> 
     <?= $this->Html->link('View', array('#' => 'admin-view-' . $server->id)) ?> 
     <?= $this->Html->link('Edit', array('#' => 'admin-edit-' . $server->id)) ?> 
    </td> 
    </tr> 
<?php endforeach; ?> 

は私が探している結果です。あなたはこの試みたんでした

<a data-target="admin-edit">Edit</a> 
<a data-target="admin-view">View</a> 

答えて

3

:それは(リスト項目を気にしない)CakePHPの規約を使用して行う必要があります - ページのリロードを防ぐために

<?= $this->Html->link('View',array('#' => 'admin-view-' . $server->id,'data-target'=>"admin-view");?> 
<?= $this->Html->link('Edit',array('#' => 'admin-view-' . $server->id,'data-target'=>"admin-edit");?> 

を、href="javascript:void(0);"とのリンクを作成します以下のように: -

<?= $this->Html->link('View','javascript:void(0);',array('#' => 'admin-view-' . $server->id,'data-target'=>"admin-view");?> 
<?= $this->Html->link('Edit','javascript:void(0);',array('#' => 'admin-view-' . $server->id,'data-target'=>"admin-edit");?> 

あなたが(ない上記のコード付き)jQueryの通過を防止したい場合は、: -

$('link').click(function(e){ 
    e.preventDefault(); 
    //rest your code 
}); 

注: - このコードの前にjQueryライブラリが追加されていることを確認してください。このコードはページの最下部にある必要があります。

+1

ありがとうございました!まだアンカーなので、アンカーをクリックするとページが再ロードされないようにする方法を知っていますか? – Levano

+0

@ Levanoはい答えを確認してください。あなたにうれしいよ:) –

3

ここ

CakePHPのlink方法は、そのパラメータとして3つの引数を取りCakePHPののHtmlHelperlink方法の詳細です。

  • タイトル [文字列]
  • のURL   [文字列または配列]
  • オプション/属性 [配列]

構文:

$this->Html->link($title, $url = null, array $options = []); 

例:ここでは

echo $this->Html->link(
    'Title', 
    '/path/to/url', #OR ['controller'=>'','action'=>'','others'] 
    [ 
    'class' => 'button', 
    'target' => '_blank', 
    'data-url'=>'#', 
    'data-path'=>'', 
    /*Other attributes*/ 
    ] 
); 

はあなたの問題のためにCreating Links in CakePHP

についての詳細は、不要href=''<a>タグ場合は、次にあなたが代わりに<a>タグのbuttonまたは他のタグを使用することができますです。

+0

詳細+1 –

+0

ありがとう! :) +1も@AlivetoDie –

関連する問題