【问题标题】:Pass PHP variable back to jQuery $.ajax function将 PHP 变量传递回 jQuery $.ajax 函数
【发布时间】:2012-05-29 17:29:05
【问题描述】:

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 调用的成功函数中。如果 pin 不等于 faf9,则控制台日志报告 null 作为值,如果我输入正确的 pin,则没有日志。

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

【问题讨论】:

    标签: php jquery ajax variables post


    【解决方案1】:

    将数据类型更改为:

    dataType: 'HTML',
    

    就是这样:)

    【讨论】:

    • 或者把dataString改成dataString:{PIN:PIN}
    【解决方案2】:

    您的 php 返回一个字符串,但您需要一个 JSON 对象。更改 $.ajax 函数内的数据类型属性

    【讨论】:

      【解决方案3】:

      对于dataType: "json",您必须返回 json 对象。 如果没有,请使用适当的类型更改该类型,例如 dataType: "html"dataType: "text"

      另外,如果你不想要空返回值,你需要初始化$site

      【讨论】:

      • 初始化$site -- 你能详细说明一下吗?
      • @muppethead 如果它是 json $site='{}';。如果是 html/文本$site='';。在if 语法之前写下一行。
      【解决方案4】:

      进行如下修改:

      • var PIN = $("this").val();替换为var PIN = $(this).val();

      • var dataString = "PIN=" + PIN;替换为var dataString = PIN;

      • dataType: "json",替换为dataType: "html",

      【讨论】:

      • 我很好奇你为什么改变主意:Replace var dataString = "PIN=" + PIN; with var dataString = PIN;
      • 我假设您正在使用$.post() 方法,在该方法中您应该将变量作为pin: PIN 传递并在服务器端将其用作$_GET['pin']。但是您使用的是$.ajax(),我最近认识到因此进行了更改! ;)
      【解决方案5】:

      这 m8 与您的确切问题无关,但我认为您应该使用 $(this) 不加引号

      【讨论】:

      • 好收获。我的代码中有$(this)。不知道为什么我在这里添加引号。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      • 2023-04-03
      • 2015-04-28
      • 2015-09-04
      • 2014-01-25
      • 1970-01-01
      相关资源
      最近更新 更多