Отправка и использование переменных POST с помощью jQuery.ajax () - PullRequest
1 голос
/ 08 июня 2010

Можно ли получить доступ к переменным $ _POST без добавления всех элементов формы в атрибут данных?

Ajax call:

$.ajax({
       type: "POST",
       url: "ajax/user.php",
       data: {**data**},
       success: this.saveUserResponse
     });

Доступ к переменным:

if(isset($_POST['saveUser']) && $_POST['saveUser']){
  $user = $_POST['username'];
  ...
  ...  
  exit;
}

Или мне нужно добавить все элементы формы к атрибуту данных, например:

var userId = $('#userId').val();
$.ajax({
       type: "POST",
       url: "ajax/user.php",
       data: {user : userId, etc...  },
       success: this.saveUserResponse
     });

Спасибо за вашу помощь

Ответы [ 2 ]

3 голосов
/ 08 июня 2010

Вы можете использовать метод .serialize() в форме, чтобы сделать это для вас.

$.ajax({
       type: "POST",
       url: "ajax/user.php",
       data: $("#formid").serialize(),
       success: this.saveUserResponse
     });

См. Справка по Jquery и нескольким формам на странице .

Вы также можете использовать плагин jQuery Form , чтобы сделать эту работу намного проще. Используя это, вы можете создать обычную форму в HTML (которая у вас уже есть), настроить ее с помощью method="POST" и action="ajax/user.php", а затем вызвать $("#formid").ajaxForm(this.saveUserResponse) при загрузке. Это настраивает все и имеет дополнительное преимущество, заключающееся в том, что оно, вероятно, также будет работать (в наиболее элементарной форме), когда JavaScript отключен.

2 голосов
/ 08 июня 2010

jQuery будет отправлять только те данные, которые вы явно передаете на сервер.

Вы можете передать значения всех элементов формы, передав $('form').serialize().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...