如何使用jquery .post从php文件中传回变量?

时间:2010-11-25 12:10:06

标签: jquery

我想要的只是在php脚本1中有.post javascript jquery lib代码。我希望php脚本1将表单提交发送到php脚本2,它将获取这些值并更新数据库。然后使用php脚本2,我想将一个变量发送回php脚本1,让它知道更新是否正常。

在php脚本1上我有一个名为success的变量我先给它分配一个零。然后运行.post代码,并期望将成功变量赋值为1。

在.post之后的php脚本1上的

我有一个2个案例的开关如果成功是1那么我有一个字符串说“数据库更新得很好”。然后我有另一个案例,其中成功是0然后一个字符串说“抱歉尝试失败,请再试一次”。

将这些字符串分配给名为db_status的变量。

然后我在div中附加db_status。哪个显示该字符串消息。

我知道如何使用.post并从.post的回调中获取php文件中的html代码。

我只是想知道如何传回javascript或php变量。

3 个答案:

答案 0 :(得分:1)

在PHP中只回显一个变量,即echo $ testVariable;并且$ testVariable的值为10,在你的jquery中执行此操作

$.ajax
                        ({
                        type: "POST",
                        url: "order.php",
                        dataType: "json",
                        data: postData,
                        cache: false,
                        success: function(testVariable)
                            {
                                alert("Order Saved");
                                $('#assigned_id').html(testVariable);
                            }
                        });

assigned_id现在的值为10!

答案 1 :(得分:1)

你需要做的是找到php脚本1通过ajax发送帖子数据的方法..你可以这样做:

<?php
    $variable = 0;
?>
<script type="text/javascript">
$(document).ready(function(){
    $('#input').ready(function(){
        $.post("phpscript2.php", {db_code: ""+ $(this).val() +""}, function(data){
                           if(parseInt(data) == 1){
                               $('.message').html('Database updated in good terms');
                           } else {
                               $('.message').html('Sorry the attempt was a fail.');
                           }
         });
    });
});           
</script>

<input type="hidden" value="<?php echo $variable; ?>
<div class="message">Please wait while we process</div>

然后在PHP脚本2上你会得到:

<?php
    $variable = $_POST['db_code'];

    // Do some code with the posted data that is valued to 0...
    $new_variable = 1;


    echo $new_variable;
?>

这将在加载时提交隐藏的输入字段(php在jquery之前加载,因此隐藏字段将具有hte php变量的值)。它将使用$ .post以你想要的方式发送隐藏字段POST的值,并将php脚本2发送到PHP脚本1中的变量值。然后,您将处理发布的数据想要做到这一点。然后回显一个新的变量值,甚至可以只回显1,然后echo将返回到ajax,然后我们将解析返回的数据,这是1,但它被回显,所以它变成了一个字符串,我们需要解析它转换为整数,用if else语句检查它是否为1,执行此操作,否则执行此操作,将消息分类div设置为成功或失败消息。最棒的是隐藏的输入无法编辑,因为它发送了值post,就在浏览器加载时,客户端没有时间来编辑值。

无论如何都是理论。这个没有经过测试,而且在ajax场景中我还是比较新的。

希望我帮助过!

答案 2 :(得分:-1)

正如你所说,显示jQuery.post(...)结果的方法是使用回调中的构建。这样你就可以“传回... php变量”。请记住,PHP永远不能直接返回变量,它必须呈现为已完成的页面,或者如果您选择其他响应类型,则需要JSON结构,XML文档或任何适合您需要的格式。

如果你想返回一个javascript块,那么我认为你可以这样做:

$.ajax({
   type: "GET",
   url: "myphp1.php",
   dataType: "script"
 });

但您也可以使用dataType“html”:

jQuery docs:

  

如果指定了html,则任何嵌入的   检索到的数据中的JavaScript   在HTML之前执行   以字符串形式返回。同样的,   脚本将执行JavaScript   从服务器撤回,   然后返回脚本本身   文本数据。