我正在尝试在php和jquery中进行多次选择的foreach循环,但我得到的是数组。

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);

        });


请告诉我我做错了

最佳答案

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

           var tagz = serealizeSelects($(".tagz option"));


或者,如果您不想更改选择器,只需使用find来查找所选内容中的所有选项

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


当然我不知道您在哪里定义其他变量。如果您还有其他问题,也请告诉我您整个JavaScript代码,以便为您提供更多帮助。

关于javascript - Foreach在php和jQuery中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37187475/

10-10 01:59