我想制作一个网页,将数字作为输入并在数据库中搜索其名称,然后在页面上打印名称(无需重新加载)。但我无法更新 span.Ajax 响应返回页面的 html。 代码pra.php
<php
if (isset($_POST['sk']))
{
$sk = $_POST['sk'];
$formatted= '\''.$sk.'\'';
$ka='SELECT itemName FROM '.$TT.' WHERE itemCode='.$formatted;
$view=odbc_exec($conn,$ka);
$Resultenter=odbc_Result($view,1);
}
?>
<form id="kod" class="" action="" method="post">
<input name="sk" type="text" class="form-control">
<span><?php if($Resultenter!=null) {echo $Resultenter;}?></span>
</form>
<script>
$(document).ready(function() {
$('input[name=sk]').change(function() {
var skValue = $(this).val();
$.ajax({
type: 'POST',
url: 'pra.php',
data: { sk: skValue },
success: function(response) {
console.log('skValue:', skValue);
console.log('Received response:', response );
// handle success response
},
error: function(xhr, status, error) {
console.log('AJAX request error:');
console.log('Status:', status);
console.log('Error:', error);
}
});
});
});
</script>
您需要在 ajax 返回时更新 innerHTML。 假设 ajax 响应是您要放入 span 标签内的实际数据,那么
解决问题的方法之一是
<span><?php if($Resultenter!=null) {echo $Resultenter;}?></span>
到
<span id=returnvalue><?php if($Resultenter!=null) {echo $Resultenter;}?></span>
success: function(response) {
console.log('skValue:', skValue);
console.log('Received response:', response );
// handle success response
},
到
success: function(response) {
document.getElementById("returnvalue").innerHTML=response;
},
最后但同样重要的是,请将您的查询更改为可抵抗 SQL 注入的参数化准备语句。