ajax发布的页面上的回声值

问题描述 投票:0回答:1

我想制作一个网页,将数字作为输入并在数据库中搜索其名称,然后在页面上打印名称(无需重新加载)。但我无法更新 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>
javascript php jquery ajax
1个回答
0
投票

您需要在 ajax 返回时更新 innerHTML。 假设 ajax 响应是您要放入 span 标签内的实际数据,那么

解决问题的方法之一是

  1. 为 span 添加一个 ID,因此,更改
 <span><?php if($Resultenter!=null) {echo $Resultenter;}?></span>

 <span id=returnvalue><?php if($Resultenter!=null) {echo $Resultenter;}?></span>
  1. 告诉系统更新 span innerHTML,因此,更改块
success: function(response) {
        console.log('skValue:', skValue);
 console.log('Received response:', response );
        // handle success response
      },

success: function(response) {
document.getElementById("returnvalue").innerHTML=response;
      },

最后但同样重要的是,请将您的查询更改为可抵抗 SQL 注入的参数化准备语句。

© www.soinside.com 2019 - 2024. All rights reserved.