drupal 7 — вызвать функцию php при нажатии на ссылку в переполнении стека

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

Я хочу вызвать функцию php при нажатии на следующие ссылки

ссылки:

while($data = $result->fetchObject()){
$rows[] = array(

$data->id,
$data->name,
$data->address,
$data->mob,
$data->gen,
$data->email,
$data->hob,
l('Edit' .$data->id,'/table', array('query' => array('edi'=>$data-          >id))),
l('Delete' .$data->id, '/table', array('query' =>   array('del'=>$data->id))),
);

}

и функции следующие:

function form_values_edit($id){
$id_val = $id;
$my_object = db_select('demo_forms','n')
->fields('n')
->condition('id', $id_val )
->execute()
->fetchAssoc();
return drupal_get_form('demo_form', $my_object);
}

function delete_confirm($form, &$form_state, $id){
$form['delete'] = array(
'#type' => 'value',
'#value' => $id,
);

return confirm_form(
$form,
t('Are you sure you want to delete this?',
'/table',
t('This action cannot be undone'),
t('Delete'),
t('Cancel')
));
}

function delete_confirm_submit($form, &$form_state) {
$record = $form_state['values']['delete'];
if ($record ) {
$num_deleted = db_delete('demo_forms')
->condition('id', $record )
->execute();
drupal_set_message('The record has been deleted!');
}
$form_state['redirect'] = "/table";
}

Спасибо

-1

Решение

Вы не можете вызвать функцию PHP динамически, нажав на ссылку, так как PHP является server side language, ОДНАКО, если вы загружаете другую страницу, перед загрузкой страницы вы можете выполнить код PHP.

РЕДАКТИРОВАТЬ
если вам нужна функция PHP динамически, то, что я обычно делаю (и это может быть неправильно по мнению некоторых людей), это вызов этой функции в AJAX вызов. Примечание: я бы обычно использовал POST для этого.

$.ajax(
url: 'url/to/php/function',
type: 'POST/GET',
data: {'data' : data},
success: function(res) {
// use the result stored in res
},
error: function(res) {
// use res to get the error result
}
);
0

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

Просто добавьте проверку для поля id или другое уникальное значение в вашем php-коде и обновите или удалите строки, где id = … Без уникального значения вы не можете этого сделать. Опишите удобство использования и опубликуйте свой html для получения дополнительной информации …

0