1。 HTML
我有一个输入请求用户输入他们的PIN码:
<input type="text" name="pin" maxlength="4" id="pin" />
2。的javaScript
当用户键入4个字符时,jQuery函数会触发ajax调用以处理PHP文件中的PIN并返回相应的站点名称:
$("input#pin").keyup(function() {
var PIN = $("this").val();
if (PIN.length == 4) {
var dataString = "PIN=" + PIN;
$.ajax({
type: "POST",
url: "pins.php",
dataType: "json",
data: dataString,
cache: false,
success: function(site)
{
console.log("site name is:" + site);
}
});
}
});
第3。 PHP
pins.php
包含以下代码:
<?php
$pin = $_POST["PIN"];
if ($pin == "faf9") {
$site = "pgv";
}
echo $site;
?>
问题
我似乎无法将$site
的值恢复到ajax调用的成功函数中。如果引脚不等于null
,则控制台日志会将faf9
报告为值,如果输入正确的引脚则没有日志。
我似乎无法弄清楚我哪里出错了?
答案 0 :(得分:8)
将dataType更改为:
dataType: 'HTML',
这就是全部:)
答案 1 :(得分:2)
你的php返回一个字符串,但你期待一个JSON
对象。更改$.ajax
函数
答案 2 :(得分:2)
对于dataType: "json"
,您必须返回json对象。
如果没有,请使用dataType: "html"
或dataType: "text"
此外,如果您不希望返回null值,则需要初始化$site
。
答案 3 :(得分:2)
进行以下修改:
将var PIN = $("this").val();
替换为var PIN = $(this).val();
将 var dataString = "PIN=" + PIN;
替换为var dataString = PIN;
将dataType: "json",
替换为dataType: "html",
答案 4 :(得分:1)
这个m8与您的确切问题无关,但我认为您应该使用
$(this)
没有引用