繁体   English   中英

如何在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'];调用变量$_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>

关闭正文标签之前,请移至页面末尾。 将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中。

PS:后端页面和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函数的最后2行的顺序。 您正在从函数中return ,然后更改页面的位置。

您忘了在印刷品上存储变量

<?php

     $rangeslider_val = $_GET['rangeslider_val'];
     print($rangeslider_val);

?>

您调用了$ _GET,但没有将值赋给PHP中的变量$ rangeslider_val,并且在调用PHP脚本之前返回了JavaScript。 您还提到过,如果要通过clentside使用$ .post,则必须使用PHP $ _POST从那里获取它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM