Javascript getElementById(php变量)不工作
我有一个作为mysql查询结果创建的列表,还有几个以唯一ID作为变量的列表 当我想把这个ID放在getElementById中时,它不起作用。我试过所有的引文,但没有成功 这是代码Javascript getElementById(php变量)不工作,javascript,php,html,mysql,Javascript,Php,Html,Mysql,我有一个作为mysql查询结果创建的列表,还有几个以唯一ID作为变量的列表 当我想把这个ID放在getElementById中时,它不起作用。我试过所有的引文,但没有成功 这是代码 <ul > <?php $query= mysqli_query($con,"Select * from database order by date ASC"); while($row = mysqli_fetch_array($query)){?> <li onclick
<ul >
<?php
$query= mysqli_query($con,"Select * from database order by date ASC");
while($row = mysqli_fetch_array($query)){?>
<li onclick="showMlstone(this.value)" value="<?php echo $row[id];?>"><?php echo $row[name];?><p id=<?php echo $row[id];?>></p></li>
<script>
function showMlstone(int) {
var xhttp;
if (int == "") {
document.getElementById(<?php echo $row[id];?>).innerHTML = "";
return;
}
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById(<?php echo $row[id]?>).innerHTML = this.responseText;
}
};
xhttp.open("GET", "get.php?q="+int, true);
xhttp.send();
}
</script>
<?php
</ul>
感谢您的帮助我不确定所有这些是如何工作的,但我只想指出,您的php echo中这一行缺少一个分号:
document.getElementById(<?php echo $row[id]?>).innerHTML = this.responseText;
您的php while没有右括号。尝试使用引号:
document.getElementById("<?php echo $row['id']?>").innerHTML = this.responseText;
如果您有包含php代码和其他不同语言的*.php文件,请使用open和close php标记。
此外,您还可以使用简短语法,这是将html和php代码结合起来的最佳方式:
<ul>
<li><?= $variable ?></li>
</ul>
试着用这个。这可能有用
document.getElementById('<?php echo $row[id]; ?>').innerHTML = this.responseText;
谢谢我放了分号,但它仍然不起作用。我的问题是无法将变量分配给getelementbyid。当我从chrome review中检查它时,getelementbyid中的值似乎是正确的,但它不起作用。while循环的右括号如何?另外,您不能写入$row[id],id是mysql列吗?在这种情况下,选择$row[id],它是js int吗?在这种情况下,除了将php数组分解成一个js对象之外,我真的不知道该怎么做
<?php
$query = mysqli_query($con,"Select * from database order by date ASC");
$rows = mysqli_fetch_array($query);
?>
<ul>
<? foreach($rows as $row): ?>
<li>
<?=$row['id']?>
</li>
<? endforeach ?>
</ul>
document.getElementById('<?php echo $row[id]; ?>').innerHTML = this.responseText;