脚本没有从GET获得变量

时间:2014-09-21 20:55:28

标签: php

我在/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>

2 个答案:

答案 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中调用脚本之前声明脚本。