我到处都看过,我知道我正在使用的方法应该有效,因为很多人已经问过这个问题并且它有效。
但是,对我自己来说,似乎并不想工作。
问题:为什么我的数组只显示列表中的最后一项?
代码:
形式:
<form id="searchglue" method="post" action="<?=base_url();?>index.php/main/search">
<input type="checkbox" name="colour[]" id="Amber" value="Amber">
<input type="checkbox" name="colour[]" id="Beige" value="Beige">
<input type="checkbox" name="colour[]" id="Black" value="Black">
<input type="checkbox" name="colour[]" id="Brown" value="Brown">
<input type="checkbox" name="colour[]" id="Clear" value="Clear">
<input type="checkbox" name="colour[]" id="Cola" value="Cola">
<input type="checkbox" name="colour[]" id="Cream" value="Cream">
<input type="checkbox" name="colour[]" id="Dark Blue" value="Dark Blue">
<input type="checkbox" name="colour[]" id="Dark Green" value="Dark Green">
<input type="checkbox" name="colour[]" id="Glitter Gold" value="Glitter Gold">
<input type="checkbox" name="colour[]" id="Glitter Green" value="Glitter Green">
<input type="checkbox" name="colour[]" id="Glitter Multicoloured" value="Glitter Multicoloured">
<input type="checkbox" name="colour[]" id="Glitter Red" value="Glitter Red">
<input type="checkbox" name="colour[]" id="Glitter Silver" value="Glitter Silver">
<input type="checkbox" name="colour[]" id="Gold" value="Gold">
<input type="checkbox" name="colour[]" id="Light Blue" value="Light Blue">
<input type="checkbox" name="colour[]" id="Light Brown" value="Light Brown">
<input type="checkbox" name="colour[]" id="Light Green" value="Light Green">
<input type="checkbox" name="colour[]" id="Oak" value="Oak">
<input type="checkbox" name="colour[]" id="Orange" value="Orange">
<input type="checkbox" name="colour[]" id="Pale Amber" value="Pale Amber">
<input type="checkbox" name="colour[]" id="Red" value="Red">
<input type="checkbox" name="colour[]" id="Silver" value="Silver">
<input type="checkbox" name="colour[]" id="White" value="White">
<input type="checkbox" name="colour[]" id="Yellow" value="Yellow">
</form>
结束的地方:
foreach($_POST['colour'] as $r):
echo $r;
endforeach;
我正在使用ajax
来获取结果,我认为这是获取所有name
属性的错误所在,但我不知道如何处理它......
所以这是ajax:
$('form#searchglue').on('change', function() {
var obj = $(this),
url = obj.attr('action'),
method = obj.attr('method'),
data = {};
obj.find('[name]').each(function(index, value) {
var obj = $(this),
name = obj.attr('name'),
value = obj.val();
data[name] = value;
});
$.ajax({
url: url,
type: method,
data: data,
cache: false,
success: function(response) {
$("#load").html(response);
}
});
return false;
});
无论我做什么,无论是勾选某些东西,还是完全取消它们,结果总是黄色(输入列表中的最后一个)。
答案 0 :(得分:2)
使用serialize()
方法获取表单值
$('form#searchglue').on('change', function() {
var obj = $(this);
url = obj.attr('action');
method = obj.attr('method');
data =obj.serialize();
$.ajax({
url: url,
type: method,
data: data,
cache: false,
success: function(response) {
$("#load").html(response);
}
});
return false;
});
文档:.serialize()