繁体   English   中英

从数据库填充PHP数组以创建动态HTML表单

[英]Populating PHP arrays from a DB to create a dynamic HTML form

我们希望使用数组动态创建包含数据库内容的表单。 从数据库中提取数据很简单:

$sql_inhalt = "SELECT * FROM tbl_inhalt ORDER BY id ASC";
$result_inhalt = mysql_query($sql_inhalt) or die("INHALT".mysql_error());
while($rs_inhalt = mysql_fetch_row($result_inhalt)){
        $id[] = $rs_inhalt[0];
        $text[] = $rs_inhalt[2];
}

但是我们如何将这些数据应用到表单中以便$ id和$ text对应?:

<form id="form1" name="form1" method="post" action="..." >
<?php foreach($text as $out_text){
    echo '<textarea name="'.$id.'" type="text" class="mceEditor" cols="85" rows="5" />'.$out_text.'</textarea>';
}?>
</form>

非常感谢您的帮助!

只需使用一个阵列。

while ($rs_inhalt=...) {
    $data[] = array($rs_inhalt[0], $rs_inhalt[2]);
}

在你看来

foreach ($data as $pair) {
    // acces id as $pair[0] and text as $pair[1]
}

另请注意, mysql_*函数已被正式弃用 ,因此不应在新代码中使用。 您可以使用PDO或MySQLi。 有关详细信息,请参阅SO中的此答案

或者尝试一个关联数组:

while ($rs_inhalt=...) {
    $data[$rs_inhalt[0]] = $rs_inhalt[2];
}

然后是以下形式:

foreach ($data as $id => $text) {
    // your code
}

您可以使用以下内容:

<form id="form1" name="form1" method="post" action="..." >
    <?php foreach($text as $i => $out_text){
        echo '<textarea name="'.$id[$i].'" type="text" class="mceEditor" cols="85" rows="5" />'.$out_text.'</textarea>';
    }?>
    </form>

话虽如此,使用多维数组,如在kingkero的例子中,是最好的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM