我在/user.php中有代码:
<?php
$thisuser = $_GET['user'];
echo $thisuser;
?>
我在浏览器中写道:/user.php?user = Maria 这个网站没有回应任何东西。有什么问题?
我实际上有一个ajax脚本应该通过get发送变量,但它根本不起作用。
编辑就是这一切:
echo '<div class="thisphotobox"><div class="photouser">' . 'Dodał:<a href="user.php?user=' . $numphotos["user"] . '" " class="proflink" onclick="prof(\''.$profuser.'\')"> '.$numphotos["user"].'</a></div>';
<script>
function prof(profuser){
var xmlhttp=new window.XMLHttpRequest();
xmlhttp.open("GET", "user.php?user=" + profuser, true);
xmlhttp.send();
}
</script>
答案 0 :(得分:0)
这似乎与<a>
标记的默认行为有关,导致您的函数无法在点击时执行。
由于您在prof()函数中设置了URL,因此href
标记内不需要<a>
值,因此您可以执行以下操作:
echo '<div class="thisphotobox"><div class="photouser">' . 'Dodał:<a href="javascript:void(0);" class="proflink" onclick="prof(\''.$profuser.'\')"> '.$numphotos["user"].'</a></div>';
请注意,我只是将href
值设置为javascript:void(0);
。所以现在onClick
应该生效,并且应该调用prof()函数。
**目测确认它是否正常工作:**
使用此javascript代码:
<script>
function prof(profuser)
{
var xmlhttp=new window.XMLHttpRequest();
xmlhttp.onreadystatechange = function()
{
if ( (xmlhttp.readyState == 4) && (xmlhttp.status==200) )
{
document.getElementById('result').innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "user.php?user=" + profuser, true);
xmlhttp.send();
}
</script>
然后,您还必须在javascript代码所在的文件中添加以下内容:
<div id="result"></div>
最后,请确保正确关闭PHP标记<?php ?>
,并确保只有PHP代码在该块内。 HTML和Javascript必须在该块之外。
答案 1 :(得分:-5)
AJAX脚本将通过POST而非GET发送数据。
GET是为了获得&#39;值,POST是传递值。
您也只使用POST的send()值,因此在AJAX中将GET更改为POST。
此外,您需要在HTML中调用脚本之前声明脚本。