2016-07-27 121 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); 

      } 
     }); 
}); 
});