我正在尝试检查Entry中是否存在重复项,并通过内联消息提醒用户该号码存在。
$(document).ready(function(){
$("#con1").blur(function(){
$.ajax({
datatype: 'text',
url: "check-dup-num.php",
data : {
con1: $("#con1").val()
},
context: document.body,
success: function(result){
console.log (result);
}
});
});
});
这将在控制台日志中返回以下内容。
{"numcount":"3"}
我需要的是用一条消息填充div id=#con1:
<p> 3 duplicates found </p>
如果numcount不等于0。
我试着添加
var counter = $.parseJSON('result');
var container = $('<p class="con1error"></p>');
for(var i=0; i < counter.items.length; i++) {
container.append('<p> Found ' + counter.items[i].numcount + ' duplicates. </h5>');
}
$('#con1').append(container);
但无济于事。
非常感谢您的帮助。
响应中没有任何内容表明存在items
数组,也没有理由存在循环。
简单地说:
var counter = $.parseJSON('result'); // You may or may not need to do this
// Remove any previous message
$('#con1 .con1error').remove();
if (counter.numcount != 0) {
// Set a message
$('#con1').append("<p class=con1error> Found " + counter.numcount + " duplicate(s). </p>");
}
关于您的ajax
呼叫的其他几点注意事项:
- 您有
datatype: 'text'
。选项是dataType
,而不是datatype
。个案很重要。但通常情况下,您根本不想指定dataType
。相反,请确保响应返回一个适当的Content-Type
,jQuery将使用它来确定要做什么 - 没有必要使用
context: document.body
,除非您真的希望回调中的this
引用document.body
,这是不寻常的 - 如果您确保PHP响应具有正确的
Content-Type
(application/json
(,那么您就不需要或不想要$.parseJSON
调用。jQuery将看到内容类型并对其进行解析,然后再将其提供给您。如果PHP响应的Content-Type
(如text/plain
或text/html
(不正确,则只需要$.parseJSON
调用
我假设result
等于{"numcount":"3"}
在成功回调中,您可以调用以下命令。
在VanillaJS中:
document.getElementById("con1").innerHTML = result["numcount"] + "duplicates found";
在jQuery中:
$("#con1").html(result["numcount"] + "duplicates found");
您的代码看起来像这样:
$(document).ready(function(){
$("#con1").blur(function(){
$.ajax({
datatype: 'text',
url: "check-dup-num.php",
data : {
con1: $("#con1").val()
},
context: document.body,
success: function(result){
console.log (result);
//this will populate div id=#con1 with the message
document.getElementById("con1").innerHTML = result["numcount"] + "duplicates found";
}
});
});
});