php中的复选框 - 访问问题

时间:2011-06-02 13:42:57

标签: php arrays

我需要使用下面的代码重现:

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]但在这种情况下我得到:


注意:未初始化的字符串偏移: C:\ Users \ fel \ VertrigoServ \ www \ login \ validation2.php 9

但是如果我使用`$ form_data_array [“languages”] [0],没有显示错误,似乎所有复选框都有 指数0.

解决这个问题的最佳方法是什么?

5 个答案:

答案 0 :(得分: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");
    } 
    ?>

试试这个。

答案 1 :(得分: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[]'

答案 2 :(得分: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");

答案 3 :(得分: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")

答案 4 :(得分: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%确定是否允许[]的元素名称。如果不是,您可以考虑将名称更改为

myformdata_1 ect...