我正在尝试将$ _POST数据发送到另一个页面,以便为简单的购物车添加会话。
我在PHP while循环中有多个表单,每个表单都有多个复选框,一切都与复选框不同。
我的问题是如何更改这段代码以将“item_extras”更改为数组?
if(this.checked)item_extras = $(this).val();
我尝试过以下但是,这只是创建一行包含所有值而不是数组中的另一行。如果这太令人困惑,我可以创建一个样本,如果它有帮助。
if(this.checked)item_extras + = $(this).val();
$('form[id^="add_item_form"]').on('submit', function(){
//alert("On Click Works");
event.preventDefault();
addItem($(this));
});
function addItem(ele) {
//alert("I'm in the addItem Function");
var item_id = ele.parent().parent().find("input[name=item_id]").val(); // get item id
var item_name = ele.parent().parent().find("input[name=item_name]").val(); // get item name
var item_options = ele.parent().parent().find('#options').val(); // get selected option
var item_extras = "";
$item_extras = ele.parent().parent().find('input[name^="extra"]'); // find all extras
$item_extras.each(function() {
if(this.checked) item_extras = $(this).val(); // how do i make this into an array???
});
alert("BEFORE AJAX");
var dataString = 'item_id=' + item_id + '&item_name=' + item_name + '&item_options=' + item_options + '&item_extras[]=' + item_extras;
alert(dataString);
$.ajax({
type: "POST",
cache: false,
url: "includes/cart.php",
data: dataString,
success: function () {
$.ajax({
url: 'includes/cart.php',
success: function(data) {
$('#cart').html(data);
alert("AJAX SUCCESS");
}
});
}
});
return false;
}
答案 0 :(得分:3)
您可以使用序列化方法。 Form.serialize()
$( "form" ).on( "submit", function( event ) {
event.preventDefault();
var data = $(this).serialize();
});