我正在開發一個網頁,它通過一些javascript/jquery代碼動態地創建一個帶有多個選擇標籤的表單。提交表單時,php文件(form_submit.php)必須處理提交的表單域。此外,我使用Netbeans 7.4進行php調試。提交表單無法正常工作
我的問題:當我在窗體中選擇一些值並提交表單時,調試器在form_submit.php中顯示空的提交值(例如,默認值「NOSELECTION」用於不選),而不是選定的值。下面代碼中提交函數中的控制檯確實顯示了選定的提交值(因此也確認了帶有選擇標記的內置html表單是正確的)。
我不認爲這是Netbeans中的一個錯誤,那麼我在哪裏出錯?我懷疑是jQuery的一個bug提交以下功能,但我不能看看它......
Javascript代碼:
//main function document ready
$(document).ready(function(){
//only part of code here to build the form with a number of <select>'s
ecorp_eproductoptions = '<select id="selected_eproductid'+ff+'" class="eprodtype" name="selected_eproductid'+ff+'">';
ff++;
ecorp_eproductoptions += '<option selected="selected" value="NOSELECTION" > Koppel uw product </option>';
for(var k=0; k< Staticvars.ecorp_nrofeproducts;k++){
ecorp_eproductoptions += '<option value="'+ Staticvars.suppliername[i] +'_'+Staticvars.agreementid[i] +'_'+ supplier_eproductid +'_'+ Staticvars.ecorp_eproductid[k] +'"> '+ Staticvars.ecorp_eproductname[k] +' </option>';
}//for var k
ecorp_eproductoptions += '</select>';
form += '<td> '+ ecorp_eproductoptions +' </td></tr>';
//etc...
//FUNCTION Submit()
$("#myForm").submit(function(){
console.log('SUBMITTED FORM: '+ $(this).serialize()); //shows values for select tags!
$.ajax({
type: "POST",
url: "form_submit.php",
data: $("#myForm").serialize(),
dataType: "json",
success: function(msg){
if(msg.statusgeneral == 'success'){
}
else
{
}//else
}, //succes: function
error: function(){
$("#errorbox").html("There was an error submitting the form. Please try again.");
}
});//.ajax
//make sure the form doesn't post
return false;
});//$("#myForm").submit()
}); //$(document).ready
HTML代碼:
<form id="myForm" name="myForm" action="" method="post">
<div id="wrapper"></div> <!--anchor point for adding set of product form fields -->
<input type="hidden" name="form_token" value="<?php echo $form_token; ?>" />
<input type="submit" name="submitForm" value="Bevestig">
</form>
注意,在瀏覽器的控制檯,您顯示由'$(本).serialize返回()'的價值,但您發佈'$( 「#myForm」)。序列()'。也許這就是原因。 – akonsu
thx給你評論;你建議我發錯嗎?那麼應該是什麼正確的職位? – Joppo
我會嘗試發佈'$(this).serialize()',看看它是否有任何區別。 – akonsu