1

如何将 PHP URL 变量传递给 AJAX,以便在同一页面中加载页面内容?这是我正在尝试做的一个示例..例如,我正在尝试将“profile.php?id=”设置为 AJAX,以便加载页面内容..但是,我首先开始使用循环..我不知道这是否是正确的方法..

下面是代码

<div id="myDiv"><h2>Let AJAX change this text</h2></div>


<?php
require('../madscore/database/connect.php');
database_connect();
$query = "select * from Entertainers";
$result = $connection->query($query);
$row_count =$result->num_rows;

for($i = 1; $i <= $row_count; $i++)
  {
   $row = $result->fetch_assoc();
    //echo $i. "<br />";
   // echo $row['Name']."<br />";
   // echo $row['Profession']."<br />";
   // echo $row['Score']."<br />";

?>

<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","profile.php?id="<?php echo $row['ID'] ?>, true");
xmlhttp.send();
}
</script>




<?php  echo "<a href='/profile.php?id=".$row['ID']."' onclick='loadXMLDoc()'><img src ='../".$row['Picture']."' width='100' height='100' /> </a>"; } ?>

</body>
</html>
4

2 回答 2

0

改变这个——

xmlhttp.open("GET","profile.php?id="<?php echo $row['ID'] ?>, true");

对此——

xmlhttp.open("GET","profile.php?id=<?php echo $row['ID'] ?>", true);

根据评论编辑 - 试试这个 -

myid = <?php echo $row['ID'] ?>; 

//myid = "<?php echo $row['ID'] ?>";  //Or this if its a string type 


xmlhttp.open("GET","profile.php?id="+myid, true);

聊了这么久——

<?php  echo "<a href='/profile.php?id=".$row['ID']."' onclick='loadXMLDoc(".$row['ID'].")'><img src ='../".$row['Picture']."' width='100' height='100' /> </a>"; } ?>

传递$row['ID']给您的 loadXMLDoc() 方法。

最终代码 ---

<div id="myDiv"><h2>Let AJAX change this text</h2></div>


<?php
require('../madscore/database/connect.php');
database_connect();
$query = "select * from Entertainers";
$result = $connection->query($query);
$row_count =$result->num_rows;

for($i = 1; $i <= $row_count; $i++)
  {
   $row = $result->fetch_assoc();      
?>

<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc( myid )
{
var xmlhttp;
var myloveid = id;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","profile.php?id="+myloveid, true");
xmlhttp.send();
}
</script>




<?php  echo "<a href='/profile.php?id=".$row['ID']."' onclick='loadXMLDoc(".$row['ID'].")'><img src ='../".$row['Picture']."' width='100' height='100' /> </a>"; } ?>

</body>
</html>
于 2012-12-21T05:06:55.930 回答
0

替换这个

xmlhttp.open("GET","profile.php?id="<?php echo $row['ID'] ?>, true");

有了这个

xmlhttp.open("GET","profile.php?id=<?php echo $row['ID']; ?>, true");

;非常重要。
如果您不写它,那么它将不会回显该值。

于 2012-12-21T07:30:04.890 回答