【发布时间】:2014-01-07 07:39:44
【问题描述】:
我有一个带有选择对象的表单。选项是使用来自 mySQL DB 的 PHP 生成的。我还有一个“新”选项可用。如果用户选择“新”,我正在使用 jQuery - replaceWith 函数将选择对象更改为输入类型=“文本”对象。
这一切都很好,除了提交表单后 PHP $_POST['description'][0] 为空。为什么会这样?下面我复制了选择对象和 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>
value='1' 的地方没有描述,因为当 PHP 保存最后一个条目时它是空的。一旦用户选择“新”,代码会将选择对象更改为:
<input type='text' name='description[0]' id='description[0]'>
下一页代码可以很简单
echo $_POST['description'][0]
但它不会回显在文本框中输入的内容。为什么最后一个条目是空的?
【问题讨论】:
-
如果是 HTML/PHP,你能显示输出吗?你给的是代码本身..
-
var_export($_POST)说什么?里面有什么和description相关的吗? -
对不起,我不知道如何使用 'var_export($_POST)' 我只知道一旦我点击提交并要求 PHP 回显 $_POST 它显示为空,这可能是因为 PHP 确实无法识别输入,因为它已被 jQuery 替换?
-
请发个phpfiddle什么的
-
这是您对 Prodikl 的要求,我不确定这是否能帮助您更好地理解。 phpfiddle.org/main/code/7id-4fc