从jQuery调用时如何获取php函数的返回值?

时间:2015-01-25 13:24:39

标签: php jquery ajax

我有一个php函数返回一个字符串值,它将放入html文件。

function getDirectionInfo($routeNumber) {
    //some code here
    $dirinfo = "<p> some text </p>";
    return $dirinfo;
}

if (isset($_POST['getDirectionInfo'])) {
    getDirectionInfo($_POST['getDirectionInfo']);
}

所以在jQuery中,我有一个以下函数

$(".onebtn").click(function(){
    $("#directioninfo").empty();
    var routeNumber = $(this).text();
    $.ajax({
        url: "./systemView_Function.php",
        type: "POST",
        data: {"getDirectionInfo": routeNumber},
        success: function(data) {   
            console.log("HIHIHIHI");
            $("#directioninfo").append(data);
        }
    });
})

现在console.log打印“HIHIHIHIHI”,但jQuery不会将数据附加到html。任何人都知道如何从jQuery调用时获取php函数的返回值?

3 个答案:

答案 0 :(得分:2)

而不是返回使用:

echo json_encode($dirinfo);
die;

dataType字段添加到设置为$.ajax()的{​​{1}}函数参数中也是一个好主意,以确保成功函数中的数据将被正确解析

答案 1 :(得分:1)

  1. 您只需使用echo

  2. 发回回复
  3. 使用var routeNumber = $(this).val();获取按钮值

  4. <强> PHP:

    <?php
    function getDirectionInfo($routeNumber) {
        //some code here
        $dirinfo = "<p> routeNumber". $routeNumber." </p>";
        return $dirinfo;
    }
    
    if (isset($_POST['getDirectionInfo'])) {
        echo getDirectionInfo($_POST['getDirectionInfo']);
    }else{
        echo "not set";
    }
    

    AJAX&amp; HTML

    <!DOCTYPE html>
    <html>
    <head>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script>
    $(document).ready(function(){
    	$(".onebtn").click(function(){
    		$("#directioninfo").empty();
    		var routeNumber = $(this).val();
    		console.log("routeNumber = " + routeNumber);
    		$.ajax({
    			url: "systemView_Function.php",
    			type: "POST",
    			data: {"getDirectionInfo": routeNumber},
    			success: function(data) {   
    				console.log("data = " + data);
    				$("#directioninfo").append(data);
    			}
    		});
    	})
    });
    </script>
    </head>
    <body>
    	<div id="directioninfo"></div>
    	<input type="button" value="12346" class="onebtn" />
    </body>
    </html>

答案 2 :(得分:0)

谢谢大家。我刚刚发现我在jQuery中犯了一个非常愚蠢的错误。我应该使用var routeNumber = parseInt($(this).text());而不是var routeNumber = $(this).text();所以下面的代码用来从jQuery调用时获取php函数的返回值。

在php中

function getDirectionInfo($routeNumber) {
    //some code here
    $dirinfo = "<p> some text </p>";
    echo json_encode($dirinfo);
}

if (isset($_POST['getDirectionInfo'])) {
    getDirectionInfo($_POST['getDirectionInfo']);
}
中的

$(".onebtn").click(function(){
    $("#directioninfo").empty();
    var routeNumber = parseInt($(this).text());
    $.ajax({
        url: "./systemView_Function.php",
        type: "POST",
        data: {"getDirectionInfo": routeNumber},
        dataType: "JSON",
        success: function(data) {   
            $("#directioninfo").append(data);
        }
    });
})