我正在尝试在php和jquery中进行一个foreach循环进行多次选择,但我得回应的是Array。
HTML
<select multiple="multiple" class="select tagz" required>
PHP
if(!empty($_POST['tagz'])){
$tag = $_POST['tagz']);
foreach($tag as $tagz){
echo $tagz;
}
}else{
echo "Please select tags";
}
Jquery的
function serealizeSelects (select)
{
var array = [];
select.each(function(){ array.push($(this).val()) });
return array;
}
var tagz = serealizeSelects($(".tagz"));
$.post('upload.php', {tagz:tagz, title:title, category:category, description:description, price:price}, function(data){
$('#confirm').html(data);
});
请告诉我我做错了什么
答案 0 :(得分:0)
您正在尝试为名为tagz
的字段获取帖子变量,但您没有名为tagz
的字段(至少在您提供的代码中没有)。
考虑将HTML更改为:
<select name="tagz" multiple="multiple" class="select tagz" required>
答案 1 :(得分:0)
你在做select.each(function(){ array.push($(this).val()) });
但是select变量只包含select元素,而且每个元素都没有意义。你需要在options中使用each
。所以更改你的选择器。
var tagz = serealizeSelects($(".tagz option"));
或者如果您不想更改选择器,只需使用find查找选择
中的所有选项 select.find('option').each(function(){ array.push($(this).val()) })
当然我不知道你在哪里定义你的其他变量。如果你有其他问题也只是告诉我你的整个javascript代码,所以我可以帮助你更多。