使用ajax显示正在键入的内容不起作用,PHP,AJAX,JAVASCRIPT


Using ajax to display what is being typed not working, PHP, AJAX, JAVASCRIPT

使用 ajax,我尝试显示文本框中正在键入的内容,但由于某种原因它根本没有显示任何内容。我知道 ajax 函数本身是通过在函数中使用 alert 来调用的,我认为真正的问题实际上出在 test2.php 中,但我不确定我做错了什么。请看一看:

测试1.php

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

测试2

<?php
$select = $_POST['select'];
echo $select;
?>

阿贾克斯.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>
function ajax(url,unused,id) {
    $.post(url,{select: $('input[name="select"]').val()})
    .error(function(e){
        alert(e);
    })
    .success(function(d){
        $("#"+id).text(d);
    });
}

问题就在这里:

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

没有选择元素。如果你打算获取名为元素的id,那么你需要将其更改为:

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

或者在您的情况下:

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