【发布时间】:2009-05-01 12:48:21
【问题描述】:
我在 html/smarty 模板代码中嵌入了一个表单。在表单内有一个下拉框,其中包含从 db 填充的选项。如果您更改选项,它会使用 ajax 通过 onChange 事件调用 php 脚本,该 ajax 会创建/填充 2 个进一步的下拉菜单。这部分工作正常,但是如果您提交整个表单(涉及原始下拉列表和 2 个进一步动态创建的下拉列表),则在 2 个动态创建的下拉列表的情况下,键值对根本不会发送到浏览器,尽管它们在里面标签也是如此。换句话说,它只发送包含模板本身的值,而不是通过 ajax 生成到“txtHint1”中的值。
谢谢
html/模板形式:
<table border="0" width="600">
<tr>
<form name='form1' id='form1' method='get' action=''>
<td width="80"><h4><b>Source 1:</b></h4></td>
<td>
<select name='host_selection' onChange="showDatet(this.value,'txtHint1')">
{foreach from=$hostlist item="entry"}
<option value={$entry.host}>{$entry.host}</option>
{/foreach}
</select>
</td>
<td>
<div id="txtHint1">
</div>
</td>
</tr>
<tr>
<td>
<button type='submit' name='Submit'>COMPARE!</button>
</td>
<td>
<input type='hidden' name='op' value='hid' />
</td>
</form>
</tr>
</table>
通过ajax调用的部分php代码:
echo "<select name='datet_selection" . $fieldID . "'>Test</option>";
foreach ($x->sql->record as $temp) {
echo "<option value='" . $temp['datet'] . "'>" . $temp['datet'] . "</option>";
}
echo "</select>";
【问题讨论】:
-
你能打印_r($_POST)吗?