我有这个PHP代码,它根据存在的图像ID从数据库中检索信息。它运行正常,现在我正在尝试将其转换为ajax请求,以便将其加载到一个页面上。我正在努力发送变量,ajax请求似乎工作得很好,因为它发送到页面并检索信息但它没有发送变量,因此返回的信息是空白的。
我一直在关注教程,并尝试根据自己的需要进行调整,并在最后开始分崩离析。
非常感谢任何帮助!
这是我的html:
//these anchors are meant to send the value attribute through the ajax using showEp()
//I believe it's here that the request is falling down.
<a href="#" value="<?php echo $ep['ep_id'];?>" onclick="showEp(this.value)"><img src="images/Database/releases/<?php
if(isset($ep['ep_img'])){
echo $ep['ep_img'];
} else {
echo 'no_EP.png';
}
?> " height="125" width="125"/></a>
<div id="ep"></div>
这是我的javascript:
function showEp(str)
{
if (str=="")
{
document.getElementById("ep").innerHTML="";
return;
}
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("ep").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","showep.php?ep_id="+str,true);
xmlhttp.send();
}
return false; // to disable the link from following it's href.
答案 0 :(得分:0)
试试这个:
<?php
if(isset($ep['ep_img'])){
$img = $ep['ep_img'];
} else {
$img = 'no_EP.png';
}
?>
<a href="#" value="<?php echo $ep['ep_id'];?>" onclick="showEp(this.value)">
<img src="images/Database/releases/<?php echo $img;?>" height="125" width="125"/>
</a>
答案 1 :(得分:0)
我发现的问题是使用value
属性,这实际上不是锚标记的属性 - 如果我错了,请纠正我。
经过一些额外的研究后,我发现如果我使用了name
属性,那么它运行正常。
以下是修改后的代码:
<a href="#" name="<?php echo $ep['ep_id'];?>" onclick="showEp(this.name)"><img src="images/Database/releases/<?php
if(isset($ep['ep_img'])){
echo $ep['ep_img'];
} else {
echo 'no_EP.png';
}
?> " height="125" width="125"/></a>
我仍然需要阻止链接的默认操作,但我很高兴ajax功能正常工作。