javascript - 使用 jquery xmlhttp.responsetext 结果无法出现在 div 中

标签 javascript php jquery html

我对 jquery 还很陌生。我的问题是为什么 xmlhttp.responseText 无法显示在我分配的 div 中。我尝试使用警报,警报成功显示结果。我在文本框上使用 .blur() 函数来传递文本框值,以便它可以访问 php 页面以在数据库中搜索等于文本框值的内容。

这就是输入 View 的样子

<tr>
<td>
  <div align=center>
      <input type='text' size='5' class='section' name='section[]' style='font-size:11px'>
  </div>
</td>
<td>
  <div name='desc' align='center' class='desc' style='width:100px;font-size:11px;'></div>
</td>
</tr>

<tr>
<td>
  <div align=center>
      <input type='text' size='5' class='section' name='section[]' style='font-size:11px'>
  </div>
</td>
<td>
  <div name='desc' align='center' class='desc' style='width:100px;font-size:11px;'></div>
</td>
</tr>

这里有超过两行,但我只向您展示至少两行。我想使用blur()选择与部分输入中的值相等的数据库,并将结果放在同一行的desc div中。

这是js文件中的函数

$('.section').blur(function(){
var getdesc = function(key) {
  if (key.length==0)
  { 
    $(this).parent().parent().next().find('.desc').html('');
  }

  if (window.XMLHttpRequest) {
    // code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  } else { // code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
      var feedback = xmlhttp.responseText;
      alert(feedback); //alert success showing the result
      $(this).parent().parent().next().find('.desc').html(feedback); 
      //the result didn't show in the desc div
    }
  }
  xmlhttp.open("GET","getsectiondesc.php?q="+key,true);
  xmlhttp.send();

}
getdesc($(this).val()); 
});

这是 getsectiondesc.php 的内部

<?php
  include "config/koneksi.php";
  $key = $_GET['q'];
  $search = mysql_query("SELECT * FROM productx WHERE section='".$key."'");
  $result = mysql_fetch_array($search);
  if ($result>0){
    echo $result['product'];
  }
?>

我已经尝试将部分输入的值直接传递到同一行的 desc div,并且它有效。我对此很困惑。任何帮助将不胜感激。

谢谢。

最佳答案

jQuery 可以大大简化您的 AJAX 工作 - 尝试如下操作:

$('.section').blur(function(){
  var section = this;
  $.get("getsectiondesc.php?q="+key, function(data) {
    $(section).parent().parent().next().find('.desc').html(data);
  });
});

我认为你可能会被绊倒的地方在于你对“这个”的解释。当您在 XMLHttpRequest 中引用“this”时,它将引用 XMLHttpRequest 而不是 $('.section').blur()最初产生了请求。如果您想在内部使用该上下文,则必须将该上下文保存在变量中。

关于javascript - 使用 jquery xmlhttp.responsetext 结果无法出现在 div 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23533142/

相关文章:

javascript - 寻找YQL表查询当前时间

javascript - 如何平滑 jquery 动画

php - navbar-brand 中的 Laravel 动态页面标题

javascript - 匹配器函数 typeahead

javascript - 是否可以更改 :before using javascript or jQuery

javascript - 只为 iPad 加载不同的 JS 文件?

c# - 如何从 asp.net 中的代码后面调用确认消息?

php - 指数函数算法

php - YouTube说明中的新行

javascript - 单击列表元素以获取警报