我对 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/