【问题标题】:Html form submit - ajax generated dropdown values not sentHtml 表单提交 - 未发送 ajax 生成的下拉值
【发布时间】: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)吗?

标签: php html ajax


【解决方案1】:

这可能无法解决整个问题,但您动态呈现的下拉菜单似乎格式不正确。变化:

echo "<select name='datet_selection" . $fieldID . "'>Test</option>";

echo "<select name='datet_selection" . $fieldID . "'><option>Test</option>";

【讨论】:

    【解决方案2】:

    我认为你还需要一个......所以你会想要:

    echo "<select name='datet_selection" . $fieldID . "'><option>Test</option></select>";
    

    【讨论】:

      猜你喜欢
      • 2011-04-01
      • 2013-07-14
      • 2017-06-08
      • 1970-01-01
      • 2014-04-27
      • 1970-01-01
      • 1970-01-01
      • 2019-02-13
      • 1970-01-01
      相关资源
      最近更新 更多