简体   繁体   中英

Pass PHP variable back to jQuery $.ajax function

1. HTML

I have an input requesting the user to enter their PIN code:

<input type="text" name="pin" maxlength="4" id="pin" />

2. javaScript

When the user types in 4 characters, the jQuery function fires off an ajax call to process the PIN in a PHP file and return the corresponding site name:

$("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 contains the following code:

<?php
$pin = $_POST["PIN"];

if ($pin == "faf9") {
    $site = "pgv";
}

echo $site;
?>

Problem

I cannot seem to get the value of $site back into the success function of the ajax call. Console log reports null as the value if the pin doesn't equal faf9 and there is no log if I enter the correct pin.

I can't seem to figure out where I'm going wrong?

Change dataType to:

dataType: 'HTML',

That is all :)

your php returns a string but you're expecting a JSON object. Change your datatype attribute inside $.ajax function

For dataType: "json" , you have to return json object. If not, chang that type with appropriate one like dataType: "html" or dataType: "text"

Also, you need to initialize $site if you don't want null return value.

Make following modifications as:

  • Replace var PIN = $("this").val(); with var PIN = $(this).val();

  • Replace var dataString = "PIN=" + PIN; with var dataString = PIN;

  • Replace dataType: "json", with dataType: "html",

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM