你好我的问题很简单,我有一个表新闻,我有一个按钮bt1,和一个div来显示结果,我想显示表中的所有行当我点击按钮,我只得到第一行,如何显示所有结果?
<script>
function shownews(id) { <? php
include('db.php');
$query = mysql_query("SELECT * FROM news");
while ($row = mysql_fetch_array($query)) {
$a = $row['news_title'];
} ?>
var ab = <? php echo json_encode($a); ?> ;
id.innerHTML = ab;
}
</script>
<div id="results"></div>
<button id="btn1" onclick="shownews(results)">See news</button>
答案 0 :(得分:1)
尝试
$a = array();
while ($row = mysql_fetch_array($query)) {
$a[] = $row['news_title'];
} ?>
// print array
print_r($a);
答案 1 :(得分:1)
你的echo json_encode($ a);不在你的while循环中,所以你只渲染1行。 此外,如果我理解你在做什么,你希望你的PHP只有在你点击按钮时才能执行?这不是这样做的方式... php是一种服务器语言,其中javascript只能由您的浏览器执行。
我没有
试试这个:
<script type="text/javascript">
function shownews(id) {
document.getElementById(id).innerHTML = document.getElementById('news').innerHTML ;
}
</script>
<div id="news" style="display:none ;">
<?php
include ('db.php');
$query=mysql_query("SELECT * FROM news");
while($row=mysql_fetch_array($query)){
echo $row['news_title'] . '<br />' ;
}
?>
</div>
<div id="results"></div>
<button id="btn1" onclick="shownews('results')">See news</button>
答案 2 :(得分:0)
你正在覆盖$ a,因此你只能获得最后一行。
更改
while($row=mysql_fetch_array($query)){
$a=$row['news_title'];
}
到
$a = array();
while($row=mysql_fetch_array($query)){
array_push($a, $row['news_title']);
}
编辑:Royal_bg是正确的 - 额外信息:
注意:如果使用array_push()向数组添加一个元素,最好使用$ array [] =,因为这样就没有调用函数的开销。 http://us2.php.net/array_push
答案 3 :(得分:0)
你在写任何东西之前都会一直执行。写完答案后,尝试更改结束括号......
<script>
function shownews(id){
<?php
include ('db.php');
$query=mysql_query("SELECT * FROM news");
while($row=mysql_fetch_array($query)){
$a=$row['news_title'];
?>
var ab = <?php echo $a; ?>;
id.innerHTML += ab;
<?php
}
?>
}
</script>
<div id="results"></div>
<button id="btn1" onclick="shownews(results)">See news</button>
答案 4 :(得分:0)
function shownews(id){
<?php
include ('db.php');
$query=mysql_query("SELECT * FROM news");
while($row=mysql_fetch_array($query)){
$a[]=$row['news_title'];
}
?>
id.innerHTML=<?php echo json_encode($a); ?>;
}