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

Posted

技术标签:

【中文标题】将 PHP 变量传递回 jQuery $.ajax 函数【英文标题】:Pass PHP variable back to jQuery $.ajax function 【发布时间】: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,则没有日志。

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

【问题讨论】:

【参考方案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)。不知道为什么我在这里添加引号。

以上是关于将 PHP 变量传递回 jQuery $.ajax 函数的主要内容,如果未能解决你的问题,请参考以下文章

将 PHP 数组传递给外部 jQuery $.ajax

ISO8859_1中的Jquery AJAX传递变量

AJAX 变量传递给 SQL 但不传递给 PHP

如何使用 jQuery 将多个变量传递给 PHP

如何将多个 PHP 变量传递给 jQuery 函数?

如何使用 Javascript 和 Ajax 将 HTML 单选按钮值传递给 PHP 变量?