2013-03-14 73 views
0

我想創建一個函數,將一個表單中的所有複選框發佈到一個php頁面。該PHP頁面將做一些處理,並會返回一個值。該值將顯示爲一個div,我設置了名爲結果。他們進行的每次檢查都會發布表單並返回一些內容。 (值將告訴用戶還有什麼要檢查或他們必須做什麼才能正確完成表格)jquery ajax onclick將所有ajax提交到php並返回一些東西

我的代碼只提交一個複選框,而不是檢查之前檢查的其他複選框。

有人可以幫忙...

謝謝!!

窗體看起來像這樣有更多的複選框。

<input name="picture[1][categories][]" type="checkbox" value=1> 
<input name="picture[1][categories][]" type="checkbox" value=2> 
<input name="picture[2][categories][]" type="checkbox" value=1> 
<input name="picture[2][categories][]" type="checkbox" value=2> 
<input name="picture[3][categories][]" type="checkbox" value=1> 
<input name="picture[3][categories][]" type="checkbox" value=2> 
<div id="result"> 

我jQuery的功能看起來像

$("input").click(function() { 
    event.preventDefault(); 

    $("#result").html(''); 

    var values = $("checkbox").serialize(); 

    $.ajax({ url: 'http://example.com/check.php', 
     data: values, 
     type: 'post', 
     success: function(output) { 
         // alert(output); 
         $("#result").html(output); 
        } 
    }); 


}); 
+1

將所有複選框放在一個表單中,並嘗試'$(「#form」)。serialize()'在窗體上。第二件事,我認爲它會發送複選框作爲'只'被檢查。我認爲這可能會幫助你。 – Patriks 2013-03-14 06:11:35

+0

第二件事我不明白爲什麼有重複的複選框,我的意思是所有都是兩次,具有相同的名稱和值? – Patriks 2013-03-14 06:12:49

+0

是啊固定的第一件事,讓我試試第二件事可能會訣竅 – momoterraw 2013-03-14 06:24:35

回答

0

把所有的複選框的形式,並嘗試$( 「#形式」) .serialize()在窗體上。

而第二件事,我認爲它會發送複選框,因爲只有選中的是。我認爲這可能會幫助你。

第三件事我不明白爲什麼有重複的複選框,我的意思是所有都是兩次,具有相同的名稱和值?

0

一種更簡單的方法是將您的形式PHP腳本之前,使用客戶端站點驗證。這樣,只要用戶按下提交,您就不會不斷地進行服務器調用,只有當數據有效時。

使用提交按鈕調用驗證腳本,並且如果成功,則將數據發送到您的php腳本。 例如

你的HTML

<button id="submit" onclick="validateForm()">Submit</button> 
在你的js

/jQuery的

$(document).ready(function(){ 

    $('#submit').click(function(){ 
     if(validateForm){ 

     //send form to php script for further processing 
     var formData = $('form').serialize(); 
     $.post('yourScript.php',formData,formSent);//your script, form data, callback function 
     }//end if 
    });//end click funciton 

});//end document ready 

function validateForm(){ 
    $('form').find('input').each(function() { 
    //validate each input item in your form 
    //highlight any input errors 
    }//end each 
    // and return true or false based on the results 
    return result; 
}//end validateForm 

function formSent(data){ 
    alert('Form has been sent!'); 
    //display returned data from php script into your results div 
    $('#yourDiv').html(data); 

}//end formSent 

希望這有助於...