2013-11-12 6 views
1

Возможно ли значение переменной Javascript для параметра php url? см. следующий код и дайте предложение, как это сделать? Html код:Можно ли отправить переменную JS в параметр php-функции

foreach($rd as $data){ 
      echo "<tr><td>".$data[role_name]."</td><td>".$data[role_description]."</td><td><a href=".$this->action('edit', $data['role_id']).">Edit</a></td><td>".$ih->button_js(t('Delete'), "deleteRole('".$data['role_id']."')", 'left', 'error')."</td></tr>"; 
     } 

в этом коде я вызвать функцию JS deleteRole(): сценария:

function deleteRole(myvar) { 
    if (confirm('<?php echo $delConfirmJS ?>')) { 
     location.href = "<?php echo $this->url('/role/add_role/', 'delete', 'myvar')?>"; 
    } 
} 

В моей странице контроллера я получить MyVar как строка не значение? controller.php

public function delete($id){ 
    echo $id; 
    exit; 
    $delete = roleinfo::delete($id); 
    $this->redirect('/role/add_role'); } 

это эхо печати "MyVar" только не ценность? Пожалуйста, предложите мне его написать или нет? иначе как это сделать?

благодаря Kumar

+1

Я бы предложил использовать AJAX для удаления строки базы данных. –

+0

спасибо, как использовать ajax? вы покажете пример кода ajax или демо –

ответ

1

У вас есть форма или smthg? Я полагаю, что самый простой способ - это скрытое поле, где вы просто изменяете значение через JS и отправляете его на PHP с помощью POST. Это не чисто или профессионально, но легко реализовать и выполнять свою работу.

4

Вы не можете отправлять или присваивать переменную JS непосредственно функции или переменной PHP, поскольку JS является языком на стороне клиента, а PHP является языком на стороне сервера.

Если вы хотите отправить переменную JS, один из способов - вы можете отправить запрос ajax на сервер, а затем ваша переменная будет доступна в php и сможет ее использовать.

Ниже приведен пример формата Аякса:

$.ajax({ 
    cache: false, 
    url: base_path + '{file_name_where_you_want_to_receive_that_value}', 
    type: 'post', 
    data: { 
     myvar: myvar 
    }, 
    success: function(data) { 
     // when you provided url procedd the req. then success will call. 

    } 
}) 

И в [file_name_where_you_want_to_receive_that_value] Ассинг, что значение некоторой переменной и использовать его.

+0

спасибо, как использовать запрос ajax, вы дадите какой-либо образец или демонстрационный код –

+0

@Kumar: ok, позвольте мне отредактировать мой ответ. – Suleman

1

Самый простой запрос AJAX вы можете сделать это следующим образом (с помощью JQuery для простоты, вы можете искать, как сделать запрос AJAX без JQuery):

function deleteRole(myvar) { 
    $.ajax({ 
     url: "<?php echo $this->url('/role/add_role/', 'delete', 'myvar')?>", 
    }).done(function(data) { 
     console.log(data); 
     $(this).addClass("done"); 
    }); 
} 

Это создаст новый запрос к указанному URL-адресу, и в основном запустить действие контроллера. У вас будет ответ запроса в данных переменной javascript.

Дополнительная информация here.

Смежные вопросы