Javascript Foreach不在php和Jquery中工作

Javascript Foreach不在php和Jquery中工作,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我试图在php和jquery中为multipleselect做一个foreach循环,但我得到的只是一个数组 html <select multiple="multiple" class="select tagz" required> Jquery function serealizeSelects (select) { var array = []; select.each(function(){ array.pus

我试图在php和jquery中为multipleselect做一个foreach循环,但我得到的只是一个数组

html

<select multiple="multiple" class="select tagz" required>
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);

        });

请告诉我我做错了什么

您试图为名为
tagz
的字段获取post变量,但您没有名为
tagz
的字段(至少在您提供的代码中没有)

考虑将HTML更改为:

<select name="tagz" multiple="multiple" class="select tagz" required>

您正在执行的
select.each(function(){array.push($(this.val())})
但是select变量只包含select元素,每个元素都没有意义。您需要在选项中使用
每个
。因此,请更改选择器

           var tagz = serealizeSelects($(".tagz option"));
或者,如果您不想更改选择器,只需使用“查找”来查找select中的所有选项

           select.find('option').each(function(){ array.push($(this).val()) })

当然,我不知道您在哪里定义了其他变量。如果您也有其他问题,请向我展示您的整个javascript代码,以便我能为您提供更多帮助。

您的select元素不是以此命名的。
$\u POST['tagz']是空的。php和jquery(javascript)是两个不同的世界。。。php正在您的服务器上运行。。。javascript正在您的浏览器上运行。@subby3您在我的ans@Wobbles请让他们检查一下,我想您没有指定$tag=$\u POST['tagz']);to$tag=$_POST['tagz'];如果你认为有些东西是有用的,但解释不清楚,那么你可以编辑我的ans。如果你能让我纠正@Wobbles,那是我的荣幸
           select.find('option').each(function(){ array.push($(this).val()) })