分配给$ _POST的动态表单输入名称

时间:2017-05-07 08:15:50

标签: php

我有一个表单,其中包含从mysql查询动态填充的input元素的名称值。我遇到的问题是我不知道将值分配给表单提交上的有效变量以供以后使用,我不能在脚本中更早地声明变量,因为在查询执行之前我不知道它?如何将名称值分配给$ _POST变量?感谢。

我的代码

Home

3 个答案:

答案 0 :(得分:0)

只需使用此标记的值属性

即可
var

我相信这会有所帮助

答案 1 :(得分:0)

您无需为输入指定显式名称。你需要的是区分表格。提交帖子时,整个表格都会提交。

your.php:

<?php 
$var = $_post['data'];
...
>

form.php的:

...
$con = new mysqli('localhost', 'jolly' ,'xxxx', 'jolly');
$query = 'SELECT * FROM names ORDER BY name ASC';
$result = mysqli_query($con, $query);  
while ($row = mysqli_fetch_assoc($result)) {    
?>  
<form id = "form_<?php echo $row['name'].'_score' ?>" name = "form_<?php echo $row['name'].'_score' ?>" action = "your.php" method = "POST">                    
    <p align="right"><?php echo $row['name'] ?>:
    <input type="int" name="data" value= "<?php echo $row['name'].'_score' ?>" />
    </br>
<?php } ?>
<p align="right">
<input type="submit"  name="submit" value="Next" />
</p>
</form>

答案 2 :(得分:0)

解决难题的一种可能性是在生成html并将查询结果存储在数组/对象/会话中之前运行sql查询。存储值后,您可以生成html,但是通过该阶段将知道db调用中的名称和值。

$con = new mysqli( 'localhost', 'jolly' ,'xxxx', 'jolly' );
$query = 'select * from `names` order by `name` asc';
$result = mysqli_query( $con, $query );
$data = array();

/* add content from db to storage object */
while( $row = mysqli_fetch_assoc( $result ) ) $data[]=$row['name'];

/* possibly save as a session? */
$_SESSION['names']=$data;



/* generate the html */
<form method='post' name='names' action='/path/to/script.php' enctype='application/x-www-form-urlencoded'>
    <?php
        foreach( $data as $i => $name ){
            echo "<p align='right'>{$name}<input type='int' name='{$name}_score' /></p>";
        }
    ?>
    <p align="right">
        <input type="submit"  name="submit" value="Next" />
    </p>
</form>

如果您将数据存储在会话中,则应该能够在表单处理程序脚本中访问它(如果需要)。