2015-06-16 38 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()},