我可以使用jquery将html表单元素附加到表中。如何附加填充了php / my sql查询的菜单,以便php菜单介于td和input之间......下面?
<script type="text/javascript">
$(document).ready(function() {
$("#link td input.rdelete").live("click", function () {
$(".newrow").attr("disabled",false);
var srow = $(this).parent().parent();
srow.remove();
});
});
function AddNew() {
if($("#link tr").length > 12) {
$(".newrow").attr("disabled",true);
}
var count = 0;
count += 1;
$("#link").append('<tr><td></td><td> <input type=\"button\" value = \"Delete\" class=\"rdelete\"/></td></tr>' );
}
</script>
php菜单是:
<select name="sub_discipline" id="sub_discipline">
<option>Select Sub-discipline...</option>
<?php
$query = mysql_query("SELECT * from sub_discipline ORDER BY sub_discipline_name ASC");
while ($row = mysql_fetch_assoc($query)){
?>
<option value="<?php echo $row['sub_discipline_pk']; ?>"><?php echo $row['sub_discipline_name']; ?></option>
<?php
}
?>
</select>
编辑:感谢Explosion Pills我现在有:
<script type="text/javascript">
$(document).ready(function() {
$("#jMenu").jMenu();
$("#link td input.rdelete").live("click", function () {
$(".newrow").attr("disabled",false);
var srow = $(this).parent().parent();
srow.remove();
});
});
function AddNew() {
if($("#link tr").length > 12) {
$(".newrow").attr("disabled",true);
}
$.getJSON('../scripts/link_menu.php', function (json) {
$("#links").empty();
$.each(json, function () {
$("#links").append(new Option(this.link_title));
});
});
$("#link").append('<tr><td></td><td><select name="links[]" id="links"> </select><input type=\"button\" value = \"Delete\" class=\"rdelete\"/></td></tr>' );
</script>
问题是只填充了第一个附加菜单。
答案 0 :(得分:1)
你需要消除PHP和JavaScript一起运行的事实。他们对彼此是不可知的(即他们不了解彼此的存在,但是他们不愿意绝对声称对方不存在)。
您可以创建一个简单的PHP脚本,将MySQL结果作为JSON回显。
$query = mysql_query("SELECT * from sub_discipline ORDER BY sub_discipline_name ASC");
$rows = array();
while ($row = mysql_fetch_assoc($query)){ $rows[] = $row; }
echo json_encode($rows);
然后,在您的JavaScript中:
$.getJSON('/agnostic-php-script.php', function (json) {
$("#sub_discipline").empty();
$.each(json, function () {
$("#sub_discipline").append(new Option(this.subdiscipline_name));
});
});
您还应stop using ext/mysql
,如果可以避免,最好不要在循环中追加。