【发布时间】:2011-04-27 14:56:38
【问题描述】:
我目前正在使用 php 来使用来自数据库的选择来填充表单。用户在选择样式表单中选择选项并提交,这会在使用第二个提交按钮完成交互之前更新表单下方的选择摘要。
我的问题是,每次用户使用第一次提交时,之前的选择都不会保留。他们必须再次检查整个表格。
有没有办法在不使用 php if 语句的情况下保持这些选择存在?有很多选项,所以每个选项都使用 php 会很痛苦。此外,表单正在通过 POST 提交。
表格样本:
<?php
// GRAB DATA
$result = mysql_query("SELECT * FROM special2 WHERE cat = 'COLOR' ORDER BY cat")
or die(mysql_error());
echo "<div id='color'><select id='color' name='product_color'>";
while($row = mysql_fetch_array( $result )) {
$name= $row["name"];
$cat= $row["cat"];
$price= $row["price"];
echo "<option value='";echo $name;echo"'>";echo $name;echo" ($$price)</option>";}
echo "</select>";
echo "<input type='hidden' name='amount_color' value='";echo $price;echo"'></div>";
?>
我尝试使用这个 js sn-p 重新填充选择,但它似乎无法正常工作...
<script type="text/javascript">document.getElementById('color').value = "<?php echo $_GET['proudct_cpu'];?>";</script>
这似乎不起作用。除了 php if 语句还有什么建议吗?
谢谢!
编辑:这基本上是我正在使用的表单设置,尽管我已经大大缩短了它,因为实际实现很长。
// Make a MySQL Connection
<?php mysql_connect("localhost", "kp_dbl", "mastermaster") or die(mysql_error());
mysql_select_db("kp_db") or die(mysql_error());
?>
<br />
<form action="build22.php" method="post">
<input type="hidden" name="data" value="1" />
<br />
<br />
<?php
// GRAB DATA
$result = mysql_query("SELECT * FROM special2 WHERE cat = 'color' ORDER BY cat")
or die(mysql_error());
echo "<div id='color'><select id='color' name='product_color'>";
while($row = mysql_fetch_array( $result )) {
$name= $row["name"];
$cat= $row["cat"];
$price= $row["price"];
echo "<option value='";echo $name;echo"'>";echo $name;echo" ($$price)</option>";}
echo "</select>";
echo "<input type='hidden' name='amount_color' value='";echo $price;echo"'></div>";
?>
<input type="submit" value="Update Configuration">
</form>
上面表单中的选择在提交后得到回显,以便为用户提供更新:
<div id="config" style="background-color:#FFF; font-size:12px; line-height:22px;">
<h1>Current Configuration:</h1>
<?php echo "<strong>Color:</strong>    ";echo $_POST['product_color']; ?>
</div>
【问题讨论】:
标签: php javascript forms submit form-submit