AJAX vs JS。将JS var值存储到php变量时的区别

时间:2016-04-29 17:30:26

标签: javascript php ajax

我一直在阅读一些关于将JS格式存储到PHP变量的问题的帖子,大多数评论都说使用AJAX。

AJAX和JS代码都可用于将JS变量值存储到PHP变量中,但有人可以解释为什么大多数人建议使用AJAX吗?或者如果我使用AJAX而不是JS存储该值

,我会有什么优势

感谢

1 个答案:

答案 0 :(得分:0)

使用AJAX,不能使用从javascript / jQuery 存储PHP值。

渲染DOM后,不会运行其他PHP。就是这样,一切都完成了。为了将更多数据发送到服务器,您有两种选择:(1)将表单发布到另一个PHP文件,该文件将输入的数据输入到表单元素中,并将更改/刷新当前页面。或(2)使用AJAX。

AJAX是一种与单独的PHP页面进行通信,来回传送数据,而无需刷新/更改用户所在页面的方式。 AJAX代码块看起来像这样:

$.ajax({
    type: 'post',
     url: 'ajax.php',
    data: 'varName=' +varSomething,
    success: function(d){
        if (d.length) alert(d);
    }
});

$.ajax({
    type: 'post',
     url: 'ajax.php',
    data: 'varSomename=' +varValue
}).done(function(){
    //success function
});

从PHP发回的数据在AJAX代码块的success函数(仅在那里)中被接收,在那里它可以被操作和/或注入到DOM中,如下所示:

$.ajax({
    type: 'post',
     url: 'ajax.php',
    data: 'thevar=' +theval,
    success: function(d){
        $('#someDIV').html(d);
    }
});

这是AJAX的一些额外链接:

dynamic drop down box?

Prevent Page Load on Jquery Form Submit with None Display Button

当数据到达指定的PHP文件(上例中的ajax.php)时,您可以通过$_POST[]变量获取该数据:

<?php
    $summat = $_POST['someVarname'];

    //To send data back to the AJAX success function, you just echo it:
    $out = '<div style="font-size:3rem;color:blue;">';
    $out .= $summat;
    $out .= '</div>';
    echo $out

现在您拥有本地PHP变量中的数据。 PHP文件执行完成后,此变量将不复存在。 要保留PHP变量,请使用$ _SESSION超级变量。要使用$ _SESSION变量,必须将session_start()添加到PHP页面的顶部:

<?php
    session_start();
    $_SESSION['summat'] = $_POST['someVarname'];

    //Now you have a permanent variable on the server, associated with this user's PHP session