如何在PHP中访问Javascript变量


How can I access my Javascript Variables in PHP?

我有一个名为lightstatuspage.php的文件,其中包含HTML、JavaScript和PHP代码。我在代码的JavaScript部分中使用了一些变量,并试图通过将这些变量传递到代码的PHP部分来将它们发送到服务器。然而,这并不奏效。

我使用$.post("lightstatuspage.php", slider_val);,然后在PHP部分,我通过执行$_GET['rangeslider_val'];来调用变量。

我做错了什么?我可以做些什么来从JavaScript中获取变量并将其发送到服务器?

    function show_value(x)
    {
       document.getElementById("slider_value").innerHTML=x;
       event.preventDefault();
       var slider_val = x;
       var query = new Parse.Query(Post);
       query.first({
          success: function(objects){
            objects.set("slider_val", slider_val);
            objects.setACL(new Parse.ACL(Parse.User.current()));
            return objects.save();
            window.location.href = "lightstatuspage.php?rangeslider_val=" + slider_val;
          }
       })
    }

PHP代码是:

<?php
    $_GET['rangeslider_val'];
    print($rangeslider_val);
?>

首先添加Jquery

<script src='https://code.jquery.com/jquery-1.11.3.min.js'></script>

到页面末尾,然后关闭body标记。将Javascript变量发送到PHP。最好的方法是使用Ajax。并将以下代码添加到javascript中。不要忘记下面的代码应该在一个事件上。例如,点击按钮或类似的东西

$( document ).ready(function() {
    var x = $('#input1').val();
    //or var x= 15;
    $.post("lightstatuspage.php",
    {
      'rangeslider_val': x
    },
    function(data, status){
    //alert("Data: " + data + "'nStatus: " + status);
   // you can show alert or not
    });
});

在php中,您可以使用:

$value = $_POST['field1'];

现在,您的变量在php中的$value中。

第S页:后端页面和HTML页面应该在同一个域上,或者您必须检查跨来源资源共享


第二个解决方案当用户接受这个解决方案时,这里的代码是:

$.get("lightstatuspage.php?rangeslider_val=" + slider_val,function(res) {
      console.log(res);
});

第二种方法只是POST和GET方法之间的区别


第三种解决方案如果你不想在你的项目中使用Jquery,并且你需要纯javascript,你可以使用下面的代码

    var str = "Send me to PHP";
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            console.log(xmlhttp.responseText);
        }
    };
    xmlhttp.open("GET", "lightstatuspage.php?rangeslider_val=" + str, true);
    xmlhttp.send();

更改JS函数最后两行的顺序。在更改页面位置之前,您正在return退出函数。

您忘记在打印上存储变量

<?php
     $rangeslider_val = $_GET['rangeslider_val'];
     print($rangeslider_val);

?>

您调用$_GET,但在PHP中没有将值分配给变量$rangeslider_val,并且在调用PHP脚本之前以JavaScript返回。你还提到,你想从clentside使用$.post,如果你这样做,你必须使用PHP$_post才能从那里获得它。