未定义的索引:第 4 行 C:\wamp\www\emailvalidate.php 中的电子邮件

Undefined index: email in C:\wamp\www\emailvalidate.php on line 4

提问人:klari 提问时间:12/15/2012 最后编辑:klari 更新时间:6/17/2022 访问量:1889

问:

我是 Ajax 的新手。在我的 Ajax 中,我收到以下错误消息:

注意:未定义的索引:C:\wamp\www\test\sample.php 中的地址 4号线

我用谷歌搜索了一下,但我没有得到我指定问题的解决方案。

这是我所做的。

使用 Ajax 的 HTML 表单 (test1.php)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

<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("POST","test2.php",true);
xmlhttp.send();
}
</script>


</head>

<body>
<form id="form1" name="form1" method="post" action="test2.php">
  <p>
    <label for="address"></label>
    <input type="text" name="address" id="address" onblur="loadXMLDoc()"  />
    <input type="submit" name="submit" id="submit" value="Submit" />
  </p>
  <p><div id = 'mydiv'></div></p>
</form>
</body>
</html>

测试2.php

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

<?php
echo "Your Address is ".$_POST['address'];
?>

</body>
</html>

我确信这是一个非常简单的问题,但我不知道如何解决它。有什么帮助吗?

PHP ajax 未定义索引

评论

0赞 Chella 12/15/2012
您在地址栏中输入的 URL 是什么??“C:\wamp\www\test\sample.php”或“localhost/test/sample.php”
0赞 Jai 12/15/2012
您是否在 localhost 或文件系统地址类型的 url 上检查它?

答:

2赞 Dale 12/15/2012 #1

您没有发送任何名称为address

我想如果你重命名一些情况,就会有所了解。input name="mail"...input name="address"

作为替代解决方案...改变:

<?php
echo "Your Address is ".$_POST['address'];
?>

对此

<?php
echo "Your Address is ".$_POST['mail'];
?>

评论

0赞 klari 12/15/2012
这不是问题。$_POST['mail'] 是我项目中的变量,但我忘了在示例代码中更改。现在我编辑了示例代码,但情况是一样的。我认为问题是另一回事
0赞 Dale 12/15/2012
如果您不打算发布有问题的代码,而是伪代码,我们将永远无法为您提供帮助
0赞 klari 12/15/2012
出于我的好奇,当我提交页面时,该值被传递给 test2.php,但当我使用 Ajax 时没有传递。可能是什么问题
0赞 klari 12/16/2012
我很惊讶为什么不能发布示例代码!为什么我在代码的一小部分中发布了问题的所有代码?
2赞 user0103 12/15/2012 #2

我在您的 HTML 代码中没有看到“地址”。您有一个文本框:

<input type="text" name="mail" id="mail" onblur="loadXMLDoc()"  />

但它的名字是“邮件”,而不是“地址” 您可以这样做:

<?php
echo "Your Address is ".$_POST['mail'];//instead of 'address'
?>

评论

0赞 klari 12/15/2012
这不是问题。$_POST['mail'] 是我项目中的变量,但我忘了在示例代码中更改。现在我编辑了示例代码,但情况是一样的。我认为问题是另一回事
0赞 klari 12/15/2012
出于我的好奇,当我提交页面时,该值被传递给 test2.php,但当我使用 Ajax 时没有传递。可能是什么问题