Javascript getElementById(php变量)不工作

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

我有一个作为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="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;