2012-05-22 88 views
2

真的不熟悉jQuery。無論如何,我可以使用jQuery將表單數據傳遞給PHP文件嗎?通過jQuery將變量傳遞給PHP文件

FORM:

<div id="dialog-form" title="Fill in your details!"> 
    <form> 
<fieldset> 
    <label for="name">Name</label> 
    <input type="text" name="name" id="name"/> 
    <label for="email">Email</label> 
    <input type="text" name="email" id="email" value=""/> 
    <label for="phone">Phone</label> 
    <input type="phone" name="phone" id="phone" value=""/> 
</fieldset> 
    </form> 

這是與jQuery彈出對話框,並獲取與提交:

$("#dialog-form").dialog({ 
    autoOpen: false, 
    height: 450, 
    width: 350, 
    modal: true, 
    buttons: { 
    "Sumbit": function() { 
    //VALIDATES FORM INFO, IF CORRECT 
     if (Valid) { 
     $.ajax({ 
      url: 'process-form.php', 
      success: function (response) { 
      //response is value returned from php 
      $("#dialog-success").dialog({ 
       modal: true, 
       buttons: { 
       Ok: function() { 
        $(this).dialog("close"); 
       } 
       } 
      }); 
      } 
     }); 
     $(this).dialog("close"); 
     } 
    } 
    } 
}); 

我想要做的就是發送表單數據的用戶輸入process-form.php,在那裏它將被處理並作爲電子郵件發送(我可以這樣做)。只是不確定在事情的jQuery方面。它甚至有可能嗎?

+2

可能重複的[jQuery的POST形式數據](http://stackoverflow.com/questions/5772839/jquery-post-form-data)等許多其他... :-) –

+0

明白了,謝謝你們。 ^首先明顯地看過其他問題。如果我不太瞭解代碼,那麼我真的不知道這是我需要與否。 – user1410070

回答

3

可以使用.serialize()功能

$('yourform').serialize(); 

Docs for .serialize() here

你會使用這樣的:

$.ajax({ 
    url: 'process-form.php', 
    data: $('form').serialize(), // **** added this line **** 
    success: function (response) { //response is value returned from php 
     $("#dialog-success").dialog({ 
      modal: true, 
      buttons: { 
       Ok: function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 
    } 
}); 
2

是的,你可以使用jQuery的.post()方法,這是詳細here

$.post("process-form.php", $("#dialog-form").serialize()); 
1

鑑於當前的代碼最簡單的方法是序列化的形式進入數據屬性:

[...] 
url: 'process-form.php', 
data: $('#dialog-form').serialize() 
0

你右邊線與$阿賈克斯,但實際上你需要通過與數據提交,你到目前爲止還沒有做過。你最好設置'類型'。

$("#dialog-form").dialog({ 
     autoOpen: false, 
     height: 450, 
     width: 350, 
     modal: true, 
     buttons: { 
      "Sumbit": function() { 
       //VALIDATES FORM INFO, IF CORRECT 
       if (Valid) { 
        $.ajax({ 
         url: 'process-form.php', 
         type: "post", 
         data: { 
          name: $('[name=name]').val(), 
          email: $('[name=email]').val(), 
          phone: $('[name=phone]').val(), 
         }, 
         success: function (response) { //response is value returned from php 
          $("#dialog-success").dialog({ 
           modal: true, 
           buttons: { 
            Ok: function() { 
             $(this).dialog("close"); 
            } 
           } 
          }); 
         } 
        }); 
        $(this).dialog("close"); 
       } 

這些變量現在應該在你的PHP腳本爲$ _ POST [ '名'],$ _ POST [ '電子郵件']和$ _ POST [ '電話']

+0

您可以使用[.serialize()](http://api.jquery.com/serialize/)傳遞整個表單。 – ManseUK

0

可以請告訴我點如果您使用ajax發送,請形成? 在現在的問題,通過獲得輸入:

var fields = []; 
$("#dialog-form form fieldset > input").each(function() { 
    fields.push($(this)[0].value); 
}); 
... 
$.ajax({ 
    url: 'process-form.php', 
    data:fields 
...