我在项目中的某些方面感到困惑。 我想在这里做的事情如下:
从数据库中获取数据 使用按钮创建一个新的选择框 - 创建 使用数据库中的值填充此选择框 通过按钮删除该选择框的选项 - 删除
我到目前为止的代码PHP / HTML:
<button type="button" name="add" onclick="return false;" id="addField" class="nice_button">Добавить(ADD)</button>
<button type="button" name="remove" onclick="return false;" id="remove" class="nice_button">Удалить(DELETE)</button>
<tbody id="documentFields">
<tr>
<td>
<select size="1" name="hardware[]" style='width:400px;'>
<option value=""></option>
<?php while($hardware = $get_hardware->fetch_array()){
echo "<option value='".$hardware['st_id']."'>".$hardware['st_name']." ".$hardware['st_producer']." ".$hardware['st_model']."</option>";
}
?>
</select>
</td>
</tr>
</tbody>
我到目前为止看到的JS脚本:
var g = 1;
var id = [ <? php echo $js_id; ?> ];
$(document).ready(function Product_add() {
$("#addField").click(function () {
$("#documentFields").append('<tr id="fieldset_p' + g + '"><td><select size="1" name="hardware[]" style="width:400px;"><option value=""></option></select></td></tr>');
g++;
});
});
$(document).ready(function Product_add() {
$('#remove').click(function () { // similar to the previous, when you click remove link
if (g > 1) { // if you have at least 1 input on the form
g--; //deduct 1 from i so if i = 3, after i--, i will be i = 2
$('#fieldset_p' + g + '').remove(); //remove the last fieldset
}
});
});
问题是我无法附加php函数:while,所以我不能将此选择框填充为之前的那个。
答案 0 :(得分:2)
在这种情况下,您可以使用Ajax。
什么是ajax:
http://en.wikipedia.org/wiki/Ajax_(programming)
它以特定格式提供仅包含您信息的页面。然后用你的javascript调用它,然后将其解析到页面中。
文档如何在jquery中执行此操作:
http://api.jquery.com/jQuery.ajax/
更新
代码示例:
$.get('ajax/test.html', function(data) {
// read in data = = [{'option':'option 1'},{'option':'option 2'}]
$.each(data, function(index, itemData) {
/// do stuff
$('<option>' + itemData.option + '</option>').appendTo('#myselectbox');
});
});