2016-07-27 55 views
0

我是PHP/AJAX的新手,我试图在没有页面刷新的情况下获取表单值。我尝试了各种代码,但他们似乎都没有工作。要么没有任何反应,要么收到未定义的索引通知。我试过使用isset()和空(),但这些似乎也没有工作。任何帮助表示赞赏。这是我的JavaScript函数中:PHP/AJAX POST表单检索

{ 
     var hr = new XMLHttpRequest(); 
     var url = "parser.php"; 
     var fn = document.getElementById("firstname").value; 

     var vars = "firstname="+fn; 
     //document.write(vars); 
     //open() method of XMLHttpRequest object 
     hr.open("get",url,true); 
     //to send url encoded variables in the request 
     hr.setRequestHeader("Content-type", "application/w-www-form-urlencoded"); 

     hr.onreadystatechange = function() { 
      if(hr.readyState == 4 && hr.status == 200){ 
       var returnData = hr.responseText; 

       document.getElementById("status").innerHTML = returnData; 

      } 


     }; 

     //send data to PHP----wait for response to update status div 
     hr.send(vars); //execute request 
     document.getElementById("status").innerHTML = "processing..."; 


    } 

这是我试过(代码JavaScript函数内)的另一种方法:

{ 
     var name = document.getElementById('firstname').value; 
     var dataString = "name"+name; 
     $.ajax({ 
      type: "post", 
      url: "validate.php", 
      data: dataString, 
      cache: false, 
      success: function (html) { 
       $('#result').html(html); 

      } 



    }); 
     return false; 

    } 

这是我的PHP文件,将返回的数据:

<?php 
     if(isset($_POST['firstname'])) { 
     $name = $_POST['firstname']; 
     echo 'Name:' . $name; 
    } 

这是输入标签:

First name:<input id="firstname" name="firstname" type="text"><br> 
+0

尝试的var_dump($ _ REQUEST)看到什么请求变量未来 –

+0

你错过了添加相同的符号。所以改变jQuery ajax中的数据字符串,如下所示:var dataString =“name =”+ name;' –

+0

我希望你的程序员使用2个文件一个用于ajax的主体,一个用于ajax运行 – madalinivascu

回答

0

我觉得你的数据串是不正确的,你缺少一个“=”

var dataString = "name"+name; 

var dataString = "name="+name; 

但你也可以尝试插入这样一个对象:

$.ajax({ 
     type: "post", 
     url: "validate.php", 
     data: {"name":name}, 
     cache: false, 
     success: function (html) { 
      $('#result').html(html); 

     } 
0

包装你的代码文档中准备好声明,触发窗体上点击一下,你的代码提交按钮,不要忘了jQuery库在你的PHP文件添加到您的网页

$(function(){ 
$('[type="submit"]').on('click',function(e){ 
    e.preventDefault(); 
    var name = $('#firstname').val(); 
     var dataString = {name:name}; 
     $.ajax({ 
      type: "post", 
      url: "validate.php", 
      data: dataString, 
      cache: false, 
      success: function (html) { 
       $('#result').html(html); 

      } 
     }); 
}); 
});