我刚刚开始使用PHP,我试图将一些jQuery ajax移植到PHP中。这是我的PHP文件:
<?php
include 'config.php';
include 'opendb.php';
$query = "SELECT * FROM agency ORDER BY name";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result)){
$id = $row['id'];
$name = $row['name'];
echo "<li class=\"agency\"><a href=\"contentAgency.php?id=$id\">$name</a><ul class=\"agency-sub\"></ul></li>";
}
include 'closedb.php';
?>
这是我当前的js函数:
//Add Agency content
$("ul.top-level").on("click", "li.agency a", function (event) {
if($(this).next().length) {
var numbs = $(this).attr("href").match(/id=([0-9]+)/)[1];
showContentAgency(numbs, this);
} else {
$(this).closest('ul').find('a').removeClass('sub-active');
}
event.preventDefault();
});
这是showContentAgency();功能:
function showContentAgency(id, elem) {
$.post("assets/includes/contentAgency.php?id=id", {
id: id
}, function (data) {
$(elem).addClass("nav-active").parent().find("ul").html(data).show();
});
}
我想做的是让PHP呈现无序列表,而不是让jQuery插入它。这就是上面PHP文件中的特色:
echo "<li class=\"agency\"><a href=\"contentAgency.php?id=$id\">$name</a><ul class=\"agency-sub\"></ul></li>"
所以我希望PHP填充<ul class="agency-sub">
列表。
答案 0 :(得分:0)
Php无法像Jquery那样访问页面的DOM。如果你想用Php访问DOM,你必须解析整个网页,这对你想要做的事情来说可能是不切实际的。 Php只能在浏览器加载页面之前修改页面。如果你想在页面加载后运行代码,你必须使用javascript。
如果您发布更多代码,我们可能会为您提供更多帮助,因为我们目前还不知道网页的代码是什么样的。
答案 1 :(得分:0)
这是列表中的列表吗?
顺便说一下,你可以编写如下的PHP代码,它更具可读性
<?php
include 'config.php';
include 'opendb.php';
$query = "SELECT * FROM agency ORDER BY name";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result)){
$id = $row['id'];
$name = $row['name'];
echo "<li class='agency'><a href='contentAgency.php?id=$id'>$name</a><ul class='agency-sub'></ul></li>";
}
include 'closedb.php';
?>
如果你在echo中使用双引号,你可以在里面使用单引号。
答案 2 :(得分:0)
你的代码结构对我来说有点不清楚,但是大概是这样的:你采取在contentAgency.php中生成内容的任何函数,并调用它来获取HTML,然后在你内部时将其粘贴到内部重新建立清单。
答案 3 :(得分:0)
我不确定你究竟想要什么,但听起来你正在寻找'foreach'循环。当我想从结果集中填充一些东西时,我可以简单地使用:
<ul>
<? foreach($result as $object) ?>
<li><?=$object?></li>
<? endforeach; ?>
</ul>
foreach用于循环,但在后台执行所有逻辑。希望这会有所帮助。