2014-11-22 27 views
0

我有這樣的代碼通行證變量不起作用

<form> 
     <input type="text" value="" name="someval"> 
     <button id="ajax-button">ajaxButton</button> 
    </form> 

    <script> 
     $(document).ready(function(){ 
      $('#ajax-button').click(function(e){ 
      e.preventDefault(); 
       $.ajax({ 
        type: "GET", 
        url: "action.php", 
        data: { text : $('input[name=someval]').val() }, 
        dataType: "text", 
        success: function (data){ 
        alert(data); 
        } 
       });   

      }); 
     }); 
    </script> 

現在我嘗試呼應阿賈克斯在PHP返回的值。

我嘗試

echo json_encode($text); 
echo $text; 
echo $_GET['text']; 

鋁是錯誤的。

如何在PHP中獲得它。 謝謝

+1

另一個重要的是要回答自己是這樣的....你想要回應(數據返回)被立即看到或頁面刷新? – 2014-11-22 16:20:38

+0

即刻..沒有refrsh – girl 2014-11-22 16:25:10

+0

你真的使用所需的鉤子爲您的Ajax回調? – RRikesh 2014-11-22 16:40:14

回答

2

套裝屬性以獲得正確的語義HTML

<form action="action.php" id="someForm" method="POST"> 
    <input type="text" value="" name="someval"> 
    <select id="someSelect"> 
     <option value="some_1">some 1</option> 
     <option value="some_2">some 2</option> 
     <option value="some_3">some 3</option> 
    </select> 
    <button id="ajax-button">Send</button> 
</form> 

你的腳本

<script> 
    $(function(){ 

     var form = $("#someForm"), 
      select = $("#someSelect"), 
      url, formData; 

     form.submit(function(event){ 
      event.preventDefault(); 

      url = form.attr("action"); 
      formData = form.serializeArray(); 

      $.post(url, data, function(response){ 
       console.log($.parseJSON(response)); 
      }); 
     }); 

     select.change(function(){ 

      url = form.attr("action"); 
      formData = form.serializeArray(); 

      $.post(url, data, function(response){ 
       console.log($.parseJSON(response)); 
      });     
     }); 

    }); 
</script> 

你的PHP文件(路徑形式的行動屬性文件中設置)。

<?php 

    var_dump($_POST); 

?> 
+0

評論不適合長時間討論;這個對話已經[轉移到聊天](http://chat.stackoverflow.com/rooms/65449/discussion-on-answer-by-smile0ff-pass-variable-from-ajax-to-php-does-not-工作)。 – 2014-11-22 22:24:16

0

改爲使用data: 'text=' + $('input[name=someval]').val() ,。而在PHP中,您只需使用echo $_GET['text'];即可直接訪問它,而無需使用json編碼。

否則,json的語法是data: { "text" : $('input[name=someval]').val() },。對於形式