-3

我正在尝试创建一个多页调查,每次进入下一页时都会保存该调查。如果他们随后离开并回到起点,所有信息都会自动填充到字段中。

首先,我选择所有以前保存的数据:

$survey = $_GET['survey'];
$query = "SELECT * FROM data WHERE id='{$survey}'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);

然后稍后我使用一个循环来获取页面上的所有问题,如果它存在于 $row 数组中,则会自动填充信息。

$query = "SELECT * FROM questions WHERE id in (1,2,3)";
$result = mysql_query($query);
    while ($items = mysql_fetch_array($result)){
        if($items['type'] == "text"){ 
        $value = $items['name']; ?>
        <p><?php echo $items['question']; ?> <input type="text" id="<?php echo $items['name']; ?>" name="<?php echo $items['name']; ?>" value="<?php echo $row['{$value}']; ?>" /></p>
        <?php }
    }

表格示例:

问题

ID,类型,名称,问题

1,text,first_name,你的名字是什么?

2,text,last_name, 你姓什么?

数据

id,first_name,last_name

1,约翰,多伊

一切似乎都在工作,除了:

value="<?php echo $row['{$value}']; ?>"

提前致谢,

4

3 回答 3

3

抛弃引号,它们使它成为字符串文字而不是变量。(括号可能也不是必需的):

value="<?php echo $row[$value]; ?>"
于 2013-01-28T14:59:47.540 回答
0

这应该是,不需要'

value="<?php echo $row[$value]; ?>"
于 2013-01-28T15:01:08.300 回答
0

您的问题是,您使用的单引号不执行 PHP 变量或函数,而是按原样获取文本。如果使用双引号,则 {$var} 将被视为变量。但是,在这种情况下,您根本不需要引号。

采用:

<?php echo $row[$value]; ?>
于 2013-01-28T15:05:04.477 回答