CakePHP, jQuery - Добавление атрибута данных в привязку
Я ищу способ вставить атрибут данных в привязки моей таблицы в CakePHP. Он автоматически генерирует следующий код, но я понятия не имею, как изменить его таким образом, чтобы сделать его целевым атрибутом данных.
Причина, по которой я хочу этого добиться, заключается в том, что я ссылаюсь на разные div на одной странице и хочу запретить перезагрузку страницы . Нужно ли вставлять preventDefault()
из jQuery? И если да, то как это сделать?
Это мой текущий код:
<?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; ?>
Вот результат, который я ищу; это должно быть сделано с использованием соглашений CakePHP (не обращайте внимания на элемент списка):
<a data-target="admin-edit">Edit</a>
<a data-target="admin-view">View</a>
2 answers
Вы пробовали это:-
<?= $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 добавлена перед этим кодом, и этот код должен быть внизу страницы.
Вот подробная информация о CakePHP HtmlHelper-помощник link
метод
Пирожное link
методы принимают 3 аргумента в качестве своих параметров.
- Заголовок [Строка]
- 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*/
]
);
Вот подробная информация о Создании ссылок в Пирожное
Для вашей проблемы, если нет необходимости
href=''
в теге<a>
, то вы можете использоватьbutton
или другие теги вместо тега<a>
.