17

我想将值传递给 PHP 脚本,所以我使用 AJAX 来传递这些值,并且在同一个函数中,我使用另一个 AJAX 来检索这些值。

问题是第二个 AJAX 没有从 PHP 文件中检索任何值。为什么是这样?如何存储传递给 PHP 脚本的变量,以便第二个 AJAX 可以检索它?

我的代码如下:

AJAX 代码:

$(document).ready(function() {    
    $("#raaagh").click(function(){    
        $.ajax({
            url: 'ajax.php', //This is the current doc
            type: "POST",
            data: ({name: 145}),
            success: function(data){
                console.log(data);
            }
        });  
        $.ajax({
            url:'ajax.php',
            data:"",
            dataType:'json',
            success:function(data1){
                var y1=data1;
                console.log(data1);
            }
        });
    });
});

PHP代码:

<?php
$userAnswer = $_POST['name'];    
echo json_encode($userAnswer);    
?>
4

5 回答 5

25

用于数据dataType:"json"_json

$.ajax({
     url: 'ajax.php', //This is the current doc
     type: "POST",
     dataType:'json', // add json datatype to get json
     data: ({name: 145}),
     success: function(data){
         console.log(data);
     }
});  

阅读文档http://api.jquery.com/jQuery.ajax/

也在PHP中

<?php
  $userAnswer = $_POST['name']; 
  $sql="SELECT * FROM <tablename> where color='".$userAnswer."'" ;
  $result=mysql_query($sql);
  $row=mysql_fetch_array($result);
  // for first row only and suppose table having data
  echo json_encode($row);  // pass array in json_encode  
?>
于 2013-03-26T12:30:48.660 回答
1
$(document).ready(function() {
    $("#raaagh").click(function() {
        $.ajax({
            url: 'ajax.php', //This is the current doc
            type: "POST",
            data: ({name: 145}),
            success: function(data) {
                console.log(data);
                $.ajax({
                    url:'ajax.php',
                    data: data,
                    dataType:'json',
                    success:function(data1) {
                        var y1=data1;
                        console.log(data1);
                    }
                });
            }
        });
    });
});

像这样使用,首先进行 ajax 调用以获取数据,然后您的 php 函数将返回您将在数据中获取的结果并将该数据传递给新的 ajax 调用

于 2013-03-26T13:00:21.300 回答
1

无需使用第二个 ajax 函数,您可以在函数内成功返回它,这里的另一个问题是您不知道第一个 ajax 调用何时完成,那么,即使您使用 SESSION 您也可能无法在第二个 AJAX 内得到它称呼。

所以,我建议使用一个 AJAX 调用并成功获得价值。

示例:在第一个 ajax 调用中

    $.ajax({
        url: 'ajax.php', //This is the current doc
        type: "POST",
        data: ({name: 145}),
        success: function(data){
            console.log(data);
            alert(data);
            //or if the data is JSON
            var jdata = jQuery.parseJSON(data);
        }
    }); 
于 2013-03-26T12:32:03.717 回答
1

在您的 PhP 文件中,将有一个名为的变量$_REQUEST,它包含一个数组,其中包含使用 AJAX 从 Javascript 发送到 PhP 的所有数据。

试试这个:var_dump($_REQUEST);并检查您是否收到了这些值。

于 2015-12-10T18:48:15.597 回答
0

你必须用单引号传递值

$(document).ready(function() {    
    $("#raaagh").click(function(){    
        $.ajax({
            url: 'ajax.php', //This is the current doc
            type: "POST",
            data: ({name: '145'}), //variables should be pass like this
            success: function(data){
                console.log(data);
                           }
        });  
        $.ajax({
    url:'ajax.php',
    data:"",
    dataType:'json',
    success:function(data1){
            var y1=data1;
            console.log(data1);
            }
        });

    });
});

试试看它可能会工作.......

于 2015-08-12T04:38:03.303 回答