使用 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()},