所以我需要制作一个巨大的新调查表格,我从db获得问题并在打印之前将它们添加到数组中。 输入类型也来自数组。 例如,像这样完成文本输入:
if ($type == 'text'){//text input
$Line[] .= "<tr><td><input type='text' name='question_$q_id' $attributes class='$classes' value=\"";
$Line[] .= '<?php if (isset($_POST[\"question_$q_id\"])){echo $_POST[\"question_$q_id\"];}?>';
$Line[] .= "\"></td></tr>\n";
所以问题当然是ifset php部分。当这样完成时,它只是使用php代码创建一个字符串值。
我应该以哪种方式将php代码添加为php代码?
我像这样检索表单中的值:
foreach ( $Line as $q_id => $line ) {
echo "$line";
我确实尝试了eval功能,但它给了我一个错误 - 我不确定如何正确使用它。
我在使用循环中的“echo”之前添加所有元素之前使用的任何形式,但似乎创建并填充带有问题的数组然后检索它更有意义,但是使字段值变得粘稠对我来说是个问题。 有没有一种简单的方法来修复它,或者我应该回到fetch循环中的回显元素?
答案 0 :(得分:0)
if ($type == 'text'){//text input
$Line[] .= "<tr><td><input type='text' name='question_{$q_id}' {$attributes} class='{$classes}' value=\"";
if (isset($_POST["question_{$q_id}"]))
$Line[] .= $_POST["question_{$q_id}"];
$Line[] .= "\"></td></tr>\n";
}
事实上,更好的方法是:
if ($type == 'text'){//text input
$Line[] .= "<tr><td><input type='text' name='question_{$q_id}' {$attributes} class='{$classes}' value=\"".isset($_POST["question_{$q_id}"])?$_POST["question_{$q_id}"]:null."\"></td></tr>\n";
}