2016-01-12 59 views
3

我在通過Ajax發送一個簡單表單字段數據到另一個PHP文件時遇到意外問題。我做了很多時間,但這次我不知道我做錯了什麼。AJAX不解析PHP中的數據

請幫忙!

這裏是我的形式:

<form action="textify.php" method="post"> 
    <input type="text" name="textify"> 
    <button>textify it!</button> 
    <pre style="display: none;"></pre> 
</form> 

這裏,這是我的jQuery與AJAX:

$(document).ready(function(){ 
    $('form').submit(function(){ 

     var textify = $('input[name=textify]').val(); 

     $.post('textify.php', {data: textify}, function(txt){ 
      $('pre').show(); 
      $('pre').text(txt); 
     }); 

     return false; 
    }); 
}); 

這裏是我的文件,其中我將數據發送到( textify.php)

class textify 
{ 
    function __construct() { 
     $textify = $_POST['data']; 
     echo $textify; 
    } 
} 
new textify; 

這是意想不到的問題:

<br /><b>Notice</b>: Undefined index: data in <b>C:\Users\omer\Desktop\textify\textify.php</b> on line <b>19</b><br /> 
+0

太好了!那麼意想不到的問題是什麼? – derape

+5

您必須使用'$ _REQUEST ['data'];'而不是'$ _REQUEST ['text']' –

+0

@derape編輯我的問題以顯示意外問題... – Omer

回答

4

的錯誤是很簡單的鍵名是無效的。您使用密鑰名稱data但您得到text哪些不存在。

變化

$.post('textify.php', {data: textify}, function(txt){ 

$.post('textify.php', {text: textify}, function(txt){ 

或更好地利用serialize()避免這樣的錯誤。

編輯:

變化代碼:

在PHP

$(document).ready(function(){ 
    $('form').submit(function(ev){ 
     ev.preventDefault(); 
     $.post('textify.php', $(this).serialize(), function(txt){ 
      $('pre').show(); 
      $('pre').text(txt); 
     }); 
    }); 
}); 

echo $_POST['textify']; 
+0

感謝您的回答,但我編輯的問題... – Omer

+0

我編輯檢查它現在 – Robert

+0

感謝羅伯特......你的答案真的很好,但事情是我的代碼工作以及:)我沒有使用任何本地服務器來測試它......我正在使用phpStorm自己的php編譯器導致這個問題。只是將我的項目移到XAMPP htdocs,我的代碼工作:)...但是謝謝你的努力 – Omer

2

只是做一些改變{text: textify}而不是{data: textify}象下面這樣:

$(document).ready(function(){ 
    $('form').submit(function(){ 

     var textify = $('input[name="textify"]').val(); 

     $.post('textify.php', {text: textify}, function(txt){ 
      $('pre').show(); 
      $('pre').text(txt); 
     }); 

     return false; 
    }); 
}); 
+0

你可以再次查看我的問題...我做了一些更改 – Omer

+0

現在它的工作? –

3

使用$ _REQUEST [ '數據']而不是$ _REQUEST [ '文本']

class textify 

{ 
    function __construct() 
    { 
     $textify = $_REQUEST['data']; //change text to data because you use data in ajax post. 

     echo $textify; 

    } 
} 


new textify;