ajax测试无法正常工作

时间:2015-06-15 06:11:49

标签: javascript php jquery ajax

我试图让一个简单的ajax测试工作,但没有成功。我试图将一个变量($ add1)从PHP传递给JS,然后让JS计算总和并通过$ _POST将其返回给PHP变量并在html中将其返回。

的index.php:

<?php 

echo "<script type='text/javascript' src='script.js'></script>";
$add1 = 3;
echo "<script>sum($add1)</script>";
$sum = $_POST['variable'];

echo $sum;

?>

的script.js:

function sum(param) {
    var sum = 3;
    sum = 3 + param;

    $.ajax({
        type: 'POST',
        url: 'index.php',
        data: {
            'variable': sum
        },
    });
}

由于某种原因,这段代码不起作用。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

script

之前在您的网页上添加此内容
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>

PHP代码

<?php 

if ($_POST['variable']) { // If ajax request only
    $sum = $_POST['variable'] + $add1;
    echo $sum;
} else { // Loading in the browser
    $add1 = 3;
    echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script><script type="text/javascript" src="script.js"></script>';

    echo "<script>sum(".$add1.")</script>";
}
?>

<强>的Javascript

function sum(param) {
    var sum = 3;
    sum = 3 + param;

    $.ajax({
        type: 'POST',
        url: 'index.php',
        data: {
            'variable': sum
        },
        success: function(result) {
            alert(result)
        },
        error: function(e) {
            console.log(e);
        }
    });
}

答案 1 :(得分:1)

  

我希望php文件将$ add1传递给Javascript然后我希望javascript将var sum返回给php和php以回显来自$ POST的$ sum。

来自$sum

$_POST实际上已回显,但未在HTML页面中显示,但作为对Ajax的响应处理。

您必须在Ajax闭包中添加success函数

$.ajax({
        type: 'POST',
        url: 'index.php',
        data: {
            'variable': sum
        },
        success: function (data){
            document.write(data);
        }
    });

您将在页面中看到答案。

PHP:

if (isset($_POST['variable'])) {
    $sum = some_futher_function($_POST['variable']);
    echo $sum;
} else {
    echo "<script type='text/javascript' src='script.js'></script>";
    $add1 = 3;
    echo "<script>sum({$add1})</script>";

}
function some_futher_function($param){
    //do some thing
     return $return;
}