使用ajax时,php中未定义的索引


Undefined index in php when using ajax

我的表单页面:

<body>  
<head>
        <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
        <script>
        function val()
        {
            var name=document.getElementById("name").value;
            if(name == '')
            {
                alert(name+" is empty");
            }
            else
            {
            var dataString = "name = "+name;
            $.ajax({
                type:"POST",
                url:"hi.php",
                data:dataString,
                cache:false,
                success:function(html){
                    $('#msg').html(html);
                }
            });
            }
        return false;
        }
        </script>
    </head>
<body>
    <form>
        <input type="text" id="name" >
        <br/><br/>
        <input type="submit" value ="submit" onclick="return val()">
    </form>
<p id="msg"></p>
</body>

这是我的惠普文件

<?php
$name = $_POST["name"];
echo "Response : ".$name;
?>

单击提交按钮时,会显示错误Notice: Undefined index: name in C:'wamp'www'SendEmailAjaxJquery'hi.php on line 2

我不知道错误在哪里,请帮我找出错误。。。

提前感谢

用这个代替这个

var dataString = "name = "+name;

换成这个

var dataString = 'name='+ name;

我这里有同样的案例,你会从中得到指导。

 <html>
 <head>
  <script type="text/javascript" src="jquery-1.12.3.min.js"></script>
 </head>
 <body>
 <div class="content">
    <input type="text" class="search" id="searchid" placeholder="Search for    people" />
    <div id="result"></div>
 </div>  
 </body> 
 </html>
 <script type="text/javascript">
 $(function(){
  $(".search").keyup(function() 
  { 
    var searchid = $(this).val();
    var dataString = 'search='+ searchid;
    if(searchid!='')
    {
      $.ajax({
      type: "POST",
      url: "result.php",
      data: dataString,
      cache: false,
      success: function(html)
      {
         $("#result").html(html).show();
      }
     });
   }return false;    
   });

更改为:

$.ajax({
  type:"POST",
  url:"hi.php",
  data: {name: name},
  cache:false,
  success:function(html){
    $('#msg').html(html);
  }
});

jQuery ajax数据设置accept Object自定义键。例如:

data: {anything: "123"}

在PHP中:

echo $_POST["anything"]; //123

在您的ajax数据中更改为

 data:{ 'name' : name }