test.html中的表格正在按钮单击添加事件上动态创建。 var i在脚本中更进一步。
html运行并且允许我从服务选择中选择一个值(第一个下拉列表中的选择应该只返回0,1,2)。选择的值通过一个帖子传递到support / descript.php,发出一个mysql查询,我希望将结果数组返回给名为description的选择。我目前在数组的警报或vales上没有返回第二个选择的值,但我也没有错误。你在php文件中看到什么东西阻止数组被填充吗?第二次下降的div也没有被填满的原因是什么?
第二个警报返回一条消息,其中包含以下内容:
<option value="Array">Array</option>
<option value="Array">Array</option>
<option value="Array">Array</option>
<option value="Array">Array</option>
<option value="Array">Array</option>
的test.html
$(document).on('change', '.service', function () {
var element = $(this);
var I = element.attr("id");
$.post("support/descriptions.php", {
id: $(this).val()
},
function (data) {
var response = (data).split(";", 2);
alert(response[0]);
alert(response[1]);
$("#descript" + I).html(response[1]);
});
return false;
});
<table>
<th>Catagory</th>
<th>Select Item</th>
<tr>
<td>
<select class ="service" name="service' + i + '" id="' + i + '">
<option value="0">Select One</option>
<option value="1">Hardscape</option>
<option value="2">Plants</option>
</select>
</td>
<td>
<select name="description' + i + '" id="' + i + '"><div id="descript' + i + '"></div></select>
</td>
</tr>
</table>
descriptions.php
<?php
include('db_connection.php');
$id = $_POST['id'];
if ($id == 1){
$result = mysql_query("SELECT Distinct description FROM hardscape");
}
if($id == 2){
$result = mysql_query("SELECT Distinct description FROM plants");
}
$options = '<option value="Select One">Select One</option>';
while($row = mysql_fetch_array($result)) {
$options .= '<option value="'. $row['description'] .'">'. $row['description'] .'</option>';
}
echo $id .";".$options.";";
?>
更新 -
我的数组没有填充的问题是因为我正在使用“;”作为一个解析。我发现我的数据有“;”在他们这样测试我改变了
echo $id .";".$options.";";
到
echo $id ."~".$options."~";
我也将div从内部改为外部
<select name="description' + i + '" id="' + i + '"><div id="descript' + i + '"></div></select>
到
<div id="descript' + i + '"><select name="description' + i + '" id="' + i + '"></select></div>
最后但并非最不重要的是,我不得不将我的php文件更改为以下内容以重建整个选择:
$options = '<select><option value="Select One">Select One</option>';
while($row = mysql_fetch_array($result)) {
$options .= '<option value="'. $row['description'] .'">'. $row['description'] .'</option>';
}
$options .='</select>';
echo $options;
答案 0 :(得分:0)
$row
是一个数组,要获取字段description
,必须从数组中获取$row['description']
$options .= '<option value="'. $row['description'] .'">'. $row['description'] .'</option>';