2012-09-04 68 views
0

我正在爲excel創建一個導出工具,而且我的數組有問題。數組問題

當我去打印時,我看到只是A的?

代碼:

$num = $_POST['num']; 
    for($i =0; $i< $num; $i++){ 
    $firstname = $_POST['firstnameexport']; 
    $lastname = $_POST['lastnameexport']; 
    $email = $_POST['emailexport']; 
    $phone = $_POST['phoneexport']; 
    $data = array(
    array("firstname" => $firstname[$i] , "lastname" => $lastname[$i], "email" => $email[$i], "phone" => $phone[$i]) 
    ); 
    print_r($firstname[$i]); 
    } 

它將打印:

Afirstname lastname email phone 
A A A A 

值正被通過形式傳遞

這裏是代碼:

$memberfirstnamearray = array($j => $memberfirstname); 
            $memberlastnamearray = array($j => $memberlastname); 
            $memberphonearray = array($j => $memberphone); 
            $memberemailarray = array($j => $memberemail); 

            $j++; 
            $i++; 

i和j = 0在開始

<input type='hidden' name='firstnameexport' value='$memberfirstnamearray' /> 
             <input type='hidden' name='lastnameexport' value='$memberlastnamearray' /> 
             <input type='hidden' name='emailexport' value='$memberphonearray' /> 
             <input type='hidden' name='phoneexport' value='$memberemailarray' /> 
             <input type='hidden' name='num' value='$j' /> 
+0

檢查你的HTML的'value ='屬性。我懷疑你會在那裏看到'Array'這個詞,因爲你試圖直接將一個數組作爲一個字符串表示來回顯。如果你需要傳遞給HTML的數組,你需要'serialize()'和'unserialize()'它們。但是,這真的很危險。爲什麼不把它們添加到會話中,而不是將它們發佈到頁面? –

+0

@mike謝謝你的回覆。我有一個來自mysql的填充列表,並從中我有一個導出按鈕,這是我正在工作,我認爲這是最簡單的只是讓它被設置到一個隱藏的輸入框,併發送過來?如果你知道的更好,請讓我知道! –

+0

重命名您的表單字段名稱的數組在末尾有方括號,即i。即name =「firstnameexport []」並遍歷所有行,或者像m那樣序列化反序列化。 berkowski建議 –

回答

0

我所要做的就是在表單中的列表之後創建會話是填充,如果單擊導出按鈕會話被髮送到輸出文件,將它變成一個Excel文件。

感謝所有的幫助傢伙!