我有一个带有选择对象的表单。选项是使用PHP从mySQL DB生成的。我也有一个“新”选项。如果用户选择“新建”,则我使用jQuery-replaceWith函数将select对象更改为输入type =“ text”对象。
除了提交PHP $ _POST ['description'] [0]表格之后,所有这些都很好用。为什么会这样呢?下面,我复制了select对象和jQuery的快照。
jQuery的:
$(function() {
$('select#description').change(function() {
if ($(this).val() == 'new')
var x = $(this).attr('name');
$(this).replaceWith('<input type="text" name="description" id="description">');
$('input#description').attr('name', x);
$('input#description').attr('id', x);
});
});
HTML / PHP:
<td>
<select id='description' name='description[$i]'>
<option value=''></option>
<option name='[$i]' value='new'>new</option>";
echo $list = $this->desc_list();
echo " </select>
</td>
这是我正在寻找的输出:
<select id='description' name='description[0]'>
<option value></option>
<option value='new'>new</option>
<option value='1'></option>
</select>
值='1'的地方没有描述,因为PHP保存最后一个条目时为空。用户选择“新”后,代码会将选择对象更改为此:
<input type='text' name='description[0]' id='description[0]'>
下一页代码可以很简单
echo $_POST['description'][0]
但是它不会回显在文本框中键入的内容。为什么最后一个条目为空?
答案被接受:以下描述的解决方案不正确。此答案的注释中的对应关系似乎已导致解决方案。
您的问题似乎是您尝试回显POST变量的方式:echo $_POST['description'][0]
永远不会提供输入文本的值,因为此字段的名称为“ description [0]”,因此您需要调用echo $_POST['description[0]']
。
如果这不能解决您的问题,并且您不熟悉var_export,请执行print_r($_POST);
以下操作:尝试将while循环放在页面2.php的上方/下方,并让我们了解输出。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句