2012-04-30 35 views
1

初學PHP程序員在這裏試圖使用mailchimp API ...php指定數組值?傳遞給each()的變量不是數組或對象

我不斷收到關於我的第一行代碼的PHP錯誤....正如您所看到的,我從表單發佈一個值,但我不確定發生了什麼。

錯誤: 警告:變量傳遞給每個()不是在XXXXXXX上線24的陣列或對象(其是第一線)

while (list($key, $val) = each($_POST['MCgroup'])) { 
     $interest .= ($count>0 ? ", " : ""); 
     $interest .= $val; 
     $count++; 
    } 

    echo $interest; //echos NOTHINGblank 
    $mergeVars = array(
         'INTERESTS'=>$interest 
         ); 

    echo $mergeVars; //echos the word ARRAY 

從我已經研究,顯然我沒有傳遞真正的ARRAY ......但是從我發現的情況來看,我的語法似乎都是正確的。 (但我可以忽略一些東西)。

這裏是傳遞值

<input type="hidden" name="MCgroup" id="MCgroup" value="My Interest One" /> 
<input type="hidden" name="MCgroup" id="MCgroup" value="My Interest Two" /> 

的表單代碼的一部分,或者我可以將其更改爲

<input type="hidden" name="MCgroup" id="MCgroup" value="My Interest One, My Interest Two" /> 

我只是我不知道如何使到一個數組。

請幫忙!謝謝!

+0

'$ _POST ['MCgroup']'可能是一個字符串,因此是警告。 – nickb

+2

你已經知道這個問題了......'$ _POST ['MCgroup']'不是一個數組,所以你不能使用'each()'。 '$ _POST ['MCgroup']'的價值是什麼?你想在這裏做什麼? –

+0

對,$ _POST ['MCgroup']是一個字符串,只是一個人的名字在一個郵件列表中的名稱,我們可以稱之爲「narf」.. 我基本上是想讓一個發佈的值的數組通過到mailchimp。在某些形式上,我可能發佈1個價值,在其他人上,我可能會發布更多。 (一個人可以有多個興趣)...... – PaulHanak

回答

1

您可以設置<input>通過後面添加[]有一個數組名,做這樣的事情:

<input type="hidden" name="MCgroup[]" id="MCgroup" value="My Interest One" /> <input type="hidden" name="MCgroup[]" id="MCgroup" value="My Interest Two" />

然後通過檢查:

print_r($_POST['MCgroup']);

我在哪裏假設您將表單方法設置爲POST。

1

更改HTML名數組:

<input type="hidden" name="MCgroup[]" id="MCgroup1" value="My Interest One" /> 
<input type="hidden" name="MCgroup[]" id="MCgroup2" value="My Interest Two" /> 
<input type="hidden" name="MCgroup[]" id="MCgroup3" value="And another sparkling interest" /> 

,如果它會是唯一同時只使用ID。