使用JQUERY的PHP AJAX回发

使用JQUERY的PHP AJAX回发,php,jquery,Php,Jquery,再一次提醒我,我现在真的进入了php,我只需要先知道一些事情。首先,我尝试在不重新加载客户机页面的情况下,向服务器上的服务器进行回发。下面是我想做的一个例子:我必须使用文本框,现在当用户在两个文本框中输入一个数字并单击add按钮时,总值应该计算并显示在第三个文本框中,而无需重新加载页面。我读了一些关于ajax的内容,但我在实现它时遇到了问题 <?php if (isset($_POST["add"])) { $val1 = $_POST["val1"];

再一次提醒我,我现在真的进入了php,我只需要先知道一些事情。首先,我尝试在不重新加载客户机页面的情况下,向服务器上的服务器进行回发。下面是我想做的一个例子:我必须使用文本框,现在当用户在两个文本框中输入一个数字并单击add按钮时,总值应该计算并显示在第三个文本框中,而无需重新加载页面。我读了一些关于ajax的内容,但我在实现它时遇到了问题

<?php
    if (isset($_POST["add"]))
    {
        $val1 = $_POST["val1"];
        $val2 = $_POST["val2"];

        $result = $val1 + $val2;
    }
?>

<html>
    <head>
        <title></title>
        <script src="jquery-1.9.1.min.js" ></script>
        <script type="text/javascript">
        $(document).ready(function() {
            if ($("#btn").click)
            {
                var request = $.ajax({
                url: "postback.php",
                type: "POST",
                data: {
                    val1 : "what goes here?",
                    val2 : "what goes here?"

                }

                });
                request.done(function(msg) {
                    $("#log").html( msg );
                });
                request.fail(function(jqXHR, textStatus) {
                alert( "Request failed: " + textStatus );
                });
            }
        });
        </script>
    </head>

    <body>
        <input type="input" name="val1">
        <input type="input" name="val2">
        <input type="input" name="result" value="<?php echo $result ?>">
        <input type="submit" id="btn" name="add">
    </body>
</html>

$(文档).ready(函数(){
如果($(“#btn”)。单击)
{
var请求=$.ajax({
url:“postback.php”,
类型:“POST”,
数据:{
瓦尔1:“这里有什么?”,
瓦尔2:“这里有什么?”
}
});
request.done(函数(msg){
$(“#log”).html(msg);
});
请求失败(函数(jqXHR,textStatus){
警报(“请求失败:+textStatus”);
});
}
});

您需要返回的结果

$result = $val1 + $val2;
使用


您需要返回的结果

$result = $val1 + $val2;
使用


不要混合使用JavaScript和PHP逻辑。把它们分开

您需要将jQuery发布到另一个文件中,并在该文件中回显PHP的结果

然后,这个结果将被放入
.done()
方法中(尽管我会使用
.success()
,您可以使用jQuery/JavaScript更新HTML的内容)

到此为止,您的HTML/JS文件中应该没有任何PHP


test.PHP中的PHP代码 从这里,我们可以看到您需要发布一个val1和一个val2,所以这里是一个非常基本的脚本

if (isset($_POST))
{
    $val1 = isset($_POST["val1"]) ? $_POST["val1"] : 'No value 1 passed through';
    $val2 = isset($_POST["val2"]) ? $_POST["val2"] : 'No value 2 passed through';

    if (is_int($val1) && is_int($val2))
    {
        // They're integers, add them
        $result = $val1 + $val2;
    }
    else
    {   
        // They're strings, append them
        $result = $val1 . $val2;
    }

    echo $result;
}
这就是PHP中所需的全部内容

你的HTML/JS
$(document.ready(function()){
$(“#添加”)。单击(函数(e){
e、 预防默认值();
$.ajax({
url:'test.php',
键入:“POST”,
数据:{
‘val1’:$(“#val1”).val(),
‘val2’:$(“#val2”).val()
},
成功:功能(数据、状态){
$(“#结果”).html(数据)
}
});
});
});
结果应该出现在这里

就是这样。非常简单。注意,未经测试,请尝试一下。

不要将JavaScript和PHP逻辑混合在一起。将它们分开

您需要将jQuery发布到另一个文件中,并在该文件中回显PHP的结果

然后,这个结果将被放入
.done()
方法中(尽管我会使用
.success()
,您可以使用jQuery/JavaScript更新HTML的内容)

到此为止,您的HTML/JS文件中应该没有任何PHP


test.PHP中的PHP代码 从这里,我们可以看到您需要发布一个val1和一个val2,所以这里是一个非常基本的脚本

if (isset($_POST))
{
    $val1 = isset($_POST["val1"]) ? $_POST["val1"] : 'No value 1 passed through';
    $val2 = isset($_POST["val2"]) ? $_POST["val2"] : 'No value 2 passed through';

    if (is_int($val1) && is_int($val2))
    {
        // They're integers, add them
        $result = $val1 + $val2;
    }
    else
    {   
        // They're strings, append them
        $result = $val1 . $val2;
    }

    echo $result;
}
这就是PHP中所需的全部内容

你的HTML/JS
$(document.ready(function()){
$(“#添加”)。单击(函数(e){
e、 预防默认值();
$.ajax({
url:'test.php',
键入:“POST”,
数据:{
‘val1’:$(“#val1”).val(),
‘val2’:$(“#val2”).val()
},
成功:功能(数据、状态){
$(“#结果”).html(数据)
}
});
});
});
结果应该出现在这里

就是这样。非常简单。请注意,未经测试,请尝试一下。

如果不想将JS和PHP分开,请遵循以下步骤:

1.您应该将输入类型设置为按钮

2.您还应该在ajax调用中发布
添加

3.您应该从textboxs
$('#val1').val()获取值。

4.您应该在回显两个值后停止代码,因为如果不这样做,ajax将返回其余的html代码和页面内容。
5.最后,您应该通过JavaScript而不是php将新值添加到第三个输入中,因为它是ajax,页面不会重新加载。

试试这个:

<?php
if(isset($_POST["add"])){
    $val1 = $_POST["val1"];
    $val2 = $_POST["val2"];
    $result = $val1+$val2;
    echo $result;
    die();
}
?>

<html>
<head>
    <title></title>
    <script src="jquery-1.9.1.min.js" ></script>
    <script type="text/javascript">
    $(document).ready(function() {
        $("#btn").click(function(){
            var request = $.ajax({
            url: "postback.php",
            type: "POST",
            data: {
                val1 : $('#val1').val(),
                val2 : $('#val2').val(),
                add : "ok"
            }

            });
            request.done(function(msg) {
                console.log(msg);
                $("#result").val( msg );
            });
            request.fail(function(jqXHR, textStatus) {
            alert( "Request failed: " + textStatus );
            });
        });
    });
    </script>
</head>
<body>
    <input type="input" id="val1">
    <input type="input" id="val2">
    <input type="input" id="result" value="">
    <input type="button" id="btn" name="add">
</body>
</html>

$(文档).ready(函数(){
$(“#btn”)。单击(函数(){
var请求=$.ajax({
url:“postback.php”,
类型:“POST”,
数据:{
val1:$('#val1').val(),
val2:$('#val2').val(),
加上:“好的”
}
});
request.done(函数(msg){
控制台日志(msg);
$(“#结果”).val(味精);
});
请求失败(函数(jqXHR,textStatus){
警报(“请求失败:+textStatus”);
});
});
});

如果不想分离JS和PHP,请遵循以下步骤:

1.您应该将输入类型设置为按钮

2.您还应该在ajax调用中发布
添加

3.您应该从textboxs
$('#val1').val()获取值。

4.您应该在回显两个值后停止代码,因为如果不这样做,ajax将返回其余的html代码和页面内容。
5.最后,您应该通过JavaScript而不是php将新值添加到第三个输入中,因为它是ajax,页面不会重新加载。

试试这个:

<?php
if(isset($_POST["add"])){
    $val1 = $_POST["val1"];
    $val2 = $_POST["val2"];
    $result = $val1+$val2;
    echo $result;
    die();
}
?>

<html>
<head>
    <title></title>
    <script src="jquery-1.9.1.min.js" ></script>
    <script type="text/javascript">
    $(document).ready(function() {
        $("#btn").click(function(){
            var request = $.ajax({
            url: "postback.php",
            type: "POST",
            data: {
                val1 : $('#val1').val(),
                val2 : $('#val2').val(),
                add : "ok"
            }

            });
            request.done(function(msg) {
                console.log(msg);
                $("#result").val( msg );
            });
            request.fail(function(jqXHR, textStatus) {
            alert( "Request failed: " + textStatus );
            });
        });
    });
    </script>
</head>
<body>
    <input type="input" id="val1">
    <input type="input" id="val2">
    <input type="input" id="result" value="">
    <input type="button" id="btn" name="add">
</body>
</html>

$(文档).ready(函数(){
$(“#btn”)。单击(函数(){
var请求=$.ajax({
url:“postback.php”,
类型:“POST”,
数据:{
val1:$('#val1').val(),
val2:$('#val2').val(),
加上:“好的”
}
});
request.done(函数(msg){
控制台日志(msg);
$(“#结果”)。