0

我有采用 textfiled 变量的 ajax 代码。它提醒值,但是当我想进入 php 时,它给了我一个未定义索引的错误

JavaScript 代码

<SCRIPT>
function go(UserID) {
var name= encodeURI(document.getElementById('name').value);
var design= encodeURI(document.getElementById('design').value);
http.open('get', 'testAjax.php?design='+design+'&name = '+name);
http.send(null);
}
</SCRIPT>

HTML 代码

<INPUT ID='name' type='text'>
<INPUT ID='design' type='hidden' value="<?php echo $UserID; ?>">
<A href="?process" onclick="javascript:go(<?php echo $UserID; ?>)">Link</A>

php代码

if(isset($_GET['process'])) {
echo $_GET['design'];
echo $_GET['name'];   
}

请让我知道如何解决它。

4

2 回答 2

0

您有一个锚标记,在该标记上您有一个 onclick 事件。触发时的 Onclick 事件将向testAjax.php?url 发送 ajax 请求。

但是,由于您没有阻止单击锚标记的默认行为,因此一旦发送此 ajax 请求,页面将重定向到?process,并且您当然不会收到任何$_GET参数。

假设您的 ajax 正常运行,请在函数return false;末尾添加。go()此外,由于在服务器端您有一个类似的子句if(isset($_GET['process'])) {,您还应该将您的 ajax url 更新为:testAjax.php?process

于 2012-04-19T02:57:08.143 回答
0

好的,我发现了一些可能导致此问题的事情。尝试:

<script>
    function go(UserID) {
        var name= encodeURI(document.getElementById('name').value);
        var design= encodeURI(document.getElementById('design').value);
        http.open('get', 'testAjax.php?process&design='+design+'&name='+name);
        http.send(null);
    }
</script>

<input id='name' type='text' />
<input id='design' type='hidden' value="<?=$UserID; ?>" />
<a href="#" onclick="javascript:go(<?=$UserID; ?>)">Link</a>

如您所见,我们删除了 html 变量“process”,并使其成为 ajax 调用的一部分。

于 2012-04-19T03:00:50.250 回答