2011-06-02 81 views
0

問題,我需要的代碼下重現類似:複選框在PHP - 訪問

myformdata[languages1] 
myformdata[languages2] 
myformdata[languages3] 

但有了這個代碼只複製myformdata[languages

<?php 
    $sql=mysql_query("select id_spoken_languages, language, path from spoken_languages"); 
    $i=0; 
    while($row=mysql_fetch_array($sql)) { 
    $id=$row['id_spoken_languages']; 
    $data=$row['language']; 
    $flag=$row['path']; 
    echo nl2br ("<input type='checkbox' name='myformdata[languages'.$i++.']' value='$id' class='semLargura'>$data <img style='float:right; margin-top:5px; border:1px solid grey;' src='$flag'></img> \n"); 
    } 
    ?> 

我已經嘗試過刪除增量只有與$form_data_array["languages"][1]訪問,但在這種情況下,我得到:


通知:未初始化的字符串偏移量:1 C:\用戶\魔\的VertrigoServ \上線WWW \登錄\ validation2.php

但是,如果使用`$ form_data_array [ 「語言」] [0],沒有錯誤顯示,似乎所有複選框都有 索引0.

解決此問題的最佳方法是什麼?

+0

得到一個合適的編輯器,並將'$ i ++'的引號從''''改爲'''。任何像樣的編輯器都可以告訴你這個 – Wrikken 2011-06-02 13:45:08

+0

你可以完全擺脫完整的停頓和單引號如果放置在語音標記(雙引號)內,php將顯示'$ i ++'... – 2011-06-02 13:50:51

+0

不,您不能,'++'操作符在引號內不起作用,它只會被視爲文本。 – Wrikken 2011-06-02 17:49:40

回答

1

看起來您的輸出字符串可能不正確。試試這個:

echo nl2br ("<input type='checkbox' name='myformdata[languages".$i++."]' value='$id' class='semLargura'>$data <img style='float:right; margin-top:5px; border:1px solid grey;' src='$flag'></img> \n"); 

我用雙引號將增量輸出前後的單引號替換爲兩個單引號。

另請注意,PHP中不需要增加。您只需添加兩個空括號[],PHP將自行處理增量。因此,如果您想通過$_POST["languages"][1]訪問輸入,可以通過生成以下代碼來實現:name='languages[]'

+0

謝謝。這正是我假裝的:name ='myformdata [languages] []' – anvd 2011-06-02 13:54:41

0

貌似報價是搞砸了:

echo nl2br ("<input type='checkbox' name='myformdata[languages" . $i++ . "]' value='$id' class='semLargura'>$data <img style='float:right; margin-top:5px; border:1px solid grey;' src='$flag'></img> \n"); 
0
$i++; 
echo nl2br ("<input type='checkbox' name='myformdata[languages$i]' value='$id' class='semLargura'>$data <img style='float:right; margin-top:5px; border:1px solid grey;' src='$flag'></img> \n") 
0

改變這一行

echo nl2br ("<input type='checkbox' name='myformdata[languages'.$i++.']' value='$id' class='semLargura'>$data <img style='float:right; margin-top:5px; border:1px solid grey;' src='$flag'></img> \n"); 

echo nl2br ("<input type='checkbox' name='myformdata[languages" .$i++. "]' value='$id' class='semLargura'>$data <img style='float:right; margin-top:5px; border:1px solid grey;' src='$flag'></img> \n"); 

而且我不是100%肯定是否[]「 s的名字被允許lements。如果沒有,你可以考慮改變是名稱,如

myformdata_1 ect... 
1
<?php 
    $sql=mysql_query("select id_spoken_languages, language, path from spoken_languages"); 
    $i=0; 
    while($row=mysql_fetch_array($sql)) { 
    $id=$row['id_spoken_languages']; 
    $data=$row['language']; 
    $flag=$row['path']; 
    echo nl2br ("<input type='checkbox' name='myformdata[languages".$i++."]' value='$id' class='semLargura'>$data <img style='float:right; margin-top:5px; border:1px solid grey;' src='$flag'></img> \n"); 
    } 
    ?> 

試試這個。