2016-05-12 127 views
1

我想在php和jquery中做多個select的foreach循環,但是我得到的所有回顯都是Array。Foreach不能在php和jquery中工作

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

     }); 

請告訴我,我做錯了

+3

您的select元素未被命名爲'$ _POST ['tagz']'爲空。 – Wobbles

+2

php和jquery(javascript)是兩個不同的世界...... php正在你的服務器上運行...... javascript正在你的瀏覽器上運行.. – dsdsdsdsd

+0

@ subby3你在我的ans上做了許多錯字錯誤檢查 –

回答

0

你正在做select.each(function(){ array.push($(this).val()) }); 但選擇變量只包含select元素,每個人都有不meaning.You需要使用each在options.So改變你的選擇。

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

,或者如果你不想改變選擇只使用發現裏面找所有選項的選擇

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

我當然不知道你定義你的其他variables.If您有其他問題也只是告訴我你的整個JavaScript代碼,所以我可以幫助你更多。

0

您試圖獲得名爲tagz的字段的帖子變量,但沒有名爲tagz的字段(至少在您提供的代碼中沒有)。

考慮更改HTML這樣:

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