JQuery отправить выбрать окно - PullRequest
1 голос
/ 05 июля 2011

У меня есть форма.Он состоит из текстовой области и поля выбора.Я хочу представить его на стороне сервера.Ниже приведен код переднего плана.Внутренний код имеет только одно предложение: «print_r ($ _POST);».Он распечатывает данные, заполненные и выбранные пользователями.Проблема в том, что я вижу, что пользователи заполнены, но я не могу видеть данные в окне выбора.Например, я хочу видеть:

Array ( [name] => hello [email] => ***@hotmail.com [list] => NYC) 

Но он показывает только:

Array ( [name] => hello [email] => ***@hotmail.com)

При этом он не может отображать данные в выбранном окне.

<form name="contact", action="ajax.php" method="POST">
    <fieldset>
      <label for="name" id="name_label">Name</label>
      <input type="text" name="name" id="name" size="30" value="" class="text-input" />

      <label for="email" id="email_label">Email</label>
      <input type="text" name="email" id="email" size="30" value="" class="text-input" />

      <select id="list" >
      <option></option>
      <option value="NYC">NYC</option>
      <option value="USA">USA</option>
      </select>

    <input type="submit" id="submit" value="Send" />
    </fieldset>
  </form>

<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script>
 $(function() {
    $('#submit').click(function() {
      // validate and process form here
    $('.error').hide();
      var name = $("input#name").val();
      var email = $("input#email").val();
      var list = $("select#list").val();

      var dataString = 'name='+ name + '&email=' + email + '&list=' + list;
      alert(dataString); 
      $.ajax({
       type: "POST",
       data: dataString,
       url : "ajax.php",
     });   
   });
  });

</script>

1 Ответ

1 голос
/ 05 июля 2011

В вашем коде нет ошибок, однако создание списка параметров самостоятельно является излишним.

Вы можете просто сериализовать эту форму с $('form[name="contact"]').serialize().

Однако, если вы отправляете эту форму в дополнение к XHR, вам необходимо присвоить элементу select атрибут name.

Кроме того, если вы намеревались отправить через XHR и обычную отправку, я бы запретил событие по умолчанию для отправки и вызвал бы submit() в случае успеха вашего XHR. В противном случае запрос может не завершиться.

...