2015-06-16 63 views
1

使用ajax,我試圖顯示在文本框中鍵入的內容,但由於某種原因它沒有顯示任何內容。我知道ajax函數本身被調用,通過在函數內部使用alert,我認爲真正的問題實際上是在test2.php中,但我不確定我做錯了什麼。請看看:使用ajax顯示輸入的內容無法正常工作,PHP,AJAX,JAVASCRIPT

test1.php

<?php 

include('ajax.php'); 

echo "<input type = 'text' name = 'select' onkeyup = 'ajax(\"test2.php\",\"select\",\"output\")'>"; 
echo "<div id = 'output'/>"; 

?> 

test2的

<?php 

$select = $_POST['select']; 
echo $select; 

?> 

ajax.php

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 

<script type = "text/javascript"> 

function ajax(url,select,id) { 

     $.ajax({ 
      type: "POST", 
      url: url, 
      data: { select: $('select[name="select"]').val()}, 
      error: function(xhr,status,error){alert(error);}, 
      success:function(data) { 
      document.getElementById(id).innerHTML = data; 
      } 

     }); 

} 

</script> 
+1

選擇[名稱=「選擇」]無效。不應該''輸入[name ='select']「' – ksealey

回答

3
function ajax(url,unused,id) { 
    $.post(url,{select: $('input[name="select"]').val()}) 
    .error(function(e){ 
     alert(e); 
    }) 
    .success(function(d){ 
     $("#"+id).text(d); 
    }); 
} 
+0

優秀! (upvoted)。 –

+0

好,酷豆。 – ksealey

+0

@ksealey無論如何對我來說參數中傳入的名字? – frosty

0

的問題是在這裏:

data: {select: $('select[name="select"]').val()}, 

沒有選擇的元素。如果你打算讓ID命名的元素,那麼你需要將其更改爲:

data: {select: $('#select[name="select"]').val()}, 

或在您的情況:

data: {select: $('input[name="select"]').val()},