AJAX与JS.将JS var值存储到php变量时的差异

AJAX vs JS. difference when storing JS var value to a php variable

本文关键字:JS 变量 php 存储 var AJAX      更新时间:2023-09-26

我在这里读到了一些关于将值从JS存储到PHP变量的问题的帖子,大多数评论都说使用AJAX。

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

感谢

如果不使用AJAX,就无法从javascript/jQuery存储PHP值。

在DOM被呈现之后,将不会运行任何额外的PHP。就这样,一切都结束了。为了向服务器发送额外的数据,您有两种选择:(1)将表单发布到另一个PHP文件,该文件将发送键入表单元素的数据,并更改/刷新当前页面或(2)使用AJAX。

AJAX是一种与单独的PHP页面通信的方式,在不刷新/更改用户所在页面的情况下来回发送数据

$.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的附加链接:

动态下拉框?

使用无显示按钮防止Jquery表单提交页面加载


当数据到达指定的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