Отправка формы CakePHP щелчком по ссылке

#cakephp

#cakephp

Вопрос:

перейдем к следующему вопросу о CakePHP 🙂

В php я могу имитировать отправку формы, например, просматривая URL-адрес, например

 <a href="index.php?click=yesamp;ip=127.0.0.1">submit youre ip</a>
  

это позволит отправить форму на index.php со значениями щелчка, равными yes, и ip, равным 127.0.0.1, без необходимости нажимать форму отправки.

Как мне добиться того же в CakePHP?

Заранее спасибо за любую помощь в этом!

Комментарии:

1. Извините, форматирование сократило часть описания моего вопроса.

2. никогда не используйте GET для выполнения задания POST.

Ответ №1:

Вам нужно будет настроить индексное действие в контроллере.

Пример:

Если вы хотите добавить пользователя с указанными выше данными, вы можете сделать следующее:

 class UsersController extends AppController {

    function add($click, $ip) {

    $this->User->set(array('click' => $click, 'ipaddress' => $ip);
    $this->User->save();

     }

}
  

Теперь, если вы перейдете к http://localhost/users/add/yes/127.0.0.1 он должен сохранить данные…

Комментарии:

1. Отлично, спасибо, теперь я вижу это так, это было довольно просто 🙂

Ответ №2:

Вы можете использовать jQuery для этого примерно следующим образом:

 $('#my-link').click(function(){
  $('#my-form').submit();
});
  

РЕДАКТИРОВАТЬ: это также соответствует вашим интересам

Комментарии:

1. Привет, 8vius, извините, потому что форматирование было неправильным, это фактически сократило часть моего вопроса, я обновил это. Я также просмотрел и принял ответы на предыдущие вопросы. Обычно забываю сделать это после того, как получу ответ, когда вернусь к кодированию 🙂 Спасибо за совет, хотя

2. Вам нужно чисто PHP-решение?

3. Ну, вы уже пробовали решение, которое я уже высказал? Используете ли вы jQuery в своем проекте?

4. да, вы пропустили мой вопрос, я уже использую подобное решение, но что мне на самом деле установить #my-form в URL-адресе cakephp? например, при написании моего собственного кода #my-form будет иметь значение index.php?click=yesamp;ip = 127.0.0.1 каково было бы, чтобы действительный URL-адрес cakephp выполнял то же действие?

5. Как вы создаете свои формы? Когда вы создаете форму в CakePHP, она уже по умолчанию указывает на действие в вашем контроллере. Отправляя ее, вы выполняете публикацию для действия, на которое она указывает.

Ответ №3:

В Cake 2.0 вы должны создать ссылку таким образом:

 <?php echo $this->Html->link('submit your ip', array(
'controller' => 'users',
'action' => 'index',//this is not necessary since index is the default action
'?' => array('click' => 'yes', 'ip' => '127.0.0.1'))
);?>
  

и это создаст:

 <a href="/users/?click=yesamp;ip=127.0.0.1">submit your ip</a>
  

Затем вы получаете данные в своем пользовательском контроллере через $this-> request-> query

Для лучшего понимания посмотрите это и это.

Надеюсь, это поможет.