[英]posting text file thru jQuery ajax in php and download the response file
[英]Posting an array to/thru ajax to php
所以我有一個從php循環創建的數組,如下所示:
echo '<input type="checkbox" name="types[]" id="types[]" value="' . $id . '"> ' . $type . '<br>';
雖然它可以將其傳遞給php,但我想進行一些更新並將其傳遞給ajax以傳遞給php,這樣我就可以讓ajax在頁面上為我做一個漂亮的回報。
我嘗試了所有類型的方法來將其傳遞給Ajax並傳遞給php,但沒有任何效果。
這是ajax代碼:
jQuery(document).ready(function(){
$('#contactform').submit(function(){
var action = $(this).attr('action');
$("#message").slideUp(750,function() {
$('#message').hide();
$('#submit')
.after('<img src="assets/ajax-loader.gif" class="loader" />')
.attr('disabled','disabled');
$.post(action, {
types['types[]']: $('#types').val(),
form_name: $('#form_name').val(),
site_id: $('#site_id').val()
},
function(data){
document.getElementById('message').innerHTML = data;
$('#message').slideDown('slow');
$('#contactform img.loader').fadeOut('slow',function(){$(this).remove()});
$('#submit').removeAttr('disabled');
if(data.match('success') != null) $('#contactform').slideUp('slow');
}
);
});
return false;
});
});
我試圖使它正常工作,因為該網站的其余部分使用相同的功能,並且我想保持相同的方式。 我不想在已經創建的頁面上刪除其他ajax內容。
因此,任何見解都將受到贊賞。
謝謝
因此,在設置了像Meager這樣的行之后,解釋了:
echo '<input type="checkbox" name="types[]" class="types" value="' . $id . '"> ' . $type . '<br>';
然后將ajax代碼調整為:
$.post(action, {
form_name: $('#form_name').val(),
site_id: $('#site_id').val(),
types: $('.types').map(function(){ $(this).val(); });
},
它似乎只是繞開了ajax,並使用以下命令直接發布到我的process.php文件中:
Array
(
[types] => Array
(
[0] => 20
[1] => 21
[2] => 22
)
[site_id] => 112
[form_name] => prd_svc
[Submit] => Submit
)
==========================================
jQuery(document).ready(function(){
$('#contactform').submit(function(){
var action = $(this).attr('action');
$("#message").slideUp(750,function() {
$('#message').hide();
$('#submit')
.after('<img src="assets/ajax-loader.gif" class="loader" />')
.attr('disabled','disabled');
$.post(action, {
form_name: $('#form_name').val(),
site_id: $('#site_id').val(),
types: $('.types').map(function(){ $(this).val(); });
},
function(data){
$('#message').html(data);
$('#message').slideDown('slow');
$('#contactform img.loader').fadeOut('slow',function(){$(this).remove()});
$('#submit').removeAttr('disabled');
if(data.match('success') != null) $('#contactform').slideUp('slow');
}
);
});
return false;
});
});
您嘗試通過以下方式創建元素的“數組”: id="types[]"
是錯誤的。 您不能以這種方式對元素進行分組,如果可以的話,仍然不會返回值數組: $('#types').val()
。
您必須為每個元素分配一個唯一的ID,或者為它們提供一個共享的類,然后通過該類進行選擇:
echo '<input type="checkbox" name="types[]" class="types" value="' . $id . '"> ' . $type . '<br>';
然后,要將一組選定的元素轉換為其值,可以使用map
:
// Collect all values
$('.types').map(function () { $(this).val(); });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.