使用AJAX填充PHP变量?

时间:2011-07-08 20:22:49

标签: php mysql ajax

我不确定这是否可行,但目前我的页面上有一个用户可以插入兴趣的表单,在该表单下面有3个PHP变量(由于没有赋值,因此最初没有显示这些变量它们)。

当用户输入兴趣并点击提交时,我的AJAX接管,填充表格然后重新加载页面,以便变量现在显示为具有值。

是否可以不必刷新页面,所以我可以说“如果成功$ var ='value';”?

我希望这听起来不会太混乱,谢谢

3 个答案:

答案 0 :(得分:1)

由于您已经在使用AJAX,为什么不使用Javascript来执行逻辑?如果您正在使用jQuery,请使用成功的回调函数执行您想要的代码。

从AJAX向PHP发送数据的问题在于PHP是服务器端语言,而AJAX是客户端语言。当浏览器看到页面时,PHP已完全执行并以HTML / CSS / Javascript等形式返回给您。

答案 1 :(得分:1)

不,你不能。当HTML在浏览器中呈现/显示时,PHP很可能早就完成了HTML的生成。您可以通过AJAX处理程序对值进行往返,然后填充页面中显示值的位置,但是什么时候为什么要打扰往返?只需让AJAX调用就可以在那里填写值。

答案 2 :(得分:1)

这绝对是可能的,也很容易做到。只需制作另一个PHP脚本并从表单页面的javascript中调用它(我假设您正在使用jQuery):

$('#mysubmit').click(function() {
    $.getJSON(
        'form_ajax.php', // This is the php file that will be called
        { formVar1: $('#form-var-1').val() }, // Add all your form data here
        function(data) {
            // This is the function that is called after the php script is 
            // done executing. The 'data' variable will contain the $data
            // array you see in the following php file.
        }
    );
});

我更喜欢使用JSON,但其他方法也同样出色。查看getJSON()ajax()的文档。你的php文件看起来像这样:

<?php
    $data = array();
    if ($_SERVER['REQUEST_METHOD'] == "POST") {
        $data['formVar1'] = $_POST['formVar1'];
    }
    echo json_encode($data);
?>

当然,您的表单数据可能会做得更多。此外,还有很多其他方法,所以请探索最适合您需求的方法。