我已经设置了一个函数来收集表单的内容并将其提交到Php页面然后让php页面处理它并返回成功消息。唯一的问题是,当我通过POST发送这个(或者说得到这个问题)时,实际上没有任何东西进入PHP页面......
function add_new_customer(){
$('.new-customer-con .submit-new-customer').click(function(){
search_path = $('.search-rel-path').val()+'insert/insert_new_customer';
var textinput = [];
$('.new-customer-con input:text').each(function(e){
if($(this).length > 0){
textinput[$(this).attr('name')] = $(this).val();
}
});
$('.new-customer-con textarea').each(function(e){
if($(this).length > 0){
textinput[$(this).attr('name')] = $(this).val();
}
});
var call_back_btn = $('.new-customer-con button[name=call_back]');
if(call_back_btn.text().toLowerCase() === 'no'){var call_back = 'false'; } else{var call_back = 'true'; }
textinput[call_back_btn.attr('name')] = call_back;
var shipping_method = $('.new-customer-con select');
textinput[shipping_method.attr('name')] = shipping_method.children('option:selected').val();
$.ajax({
url: search_path,
type: 'POST',
dataType: 'html', // in html mode for debugging
data: { data: textinput }
})
.done(function(data) {
console.log(data);
if(data['success']){
$('html, body').animate({scrollTop: $('.new-customer-con').offset().top }, 500);
$('.new-customer-con .alert-message').addClass('alert-success').hide().fadeIn('slow').text("Successfully inserted "+textinput['customer_name']);
var timeout = setTimeout(function(){$('.new-customer-con .alert-message').fadeOut('fast').text('').removeClass('alert-success');},2000);
}
})
.fail(function() {
console.log("error");
})
.always(function() {
});
});
}
不确定我做错了什么,但有没有更好的方法来发送数组,还是我必须以不同的方式格式化?对不起,我一般都知道我在用PHP做什么,但javascript中的数组有点让我头疼。
答案 0 :(得分:2)
试试这个data: textinput
代替data: { data: textinput }
答案 1 :(得分:0)
将textinput
声明为object
而不是array
var textinput = {};
然后使用data: textinput
代替data: { data: textinput }