将PHP变量传递回jQuery $ .ajax函数

时间:2012-05-23 07:28:22

标签: php jquery ajax variables post

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报告为值,如果输入正确的引脚则没有日志。

我似乎无法弄清楚我哪里出错了?

5 个答案:

答案 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) 没有引用