从 JS 函数获取 PHP 中的值

get value in php from js function

本文关键字:PHP 获取 JS 函数      更新时间:2023-09-26

我很困惑如何将数据从js获取到php变量。在JS函数中,我经常获取事件数据。问题是我想经常在 php 中获取数据,因为它是实时数据。每当数据出现时,payload都包含数据。所以我必须不断地获得payload的价值。

<html>
<head>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="mqttws31.js" type="text/javascript"></script>

    <script>
    function myFunction(p1, p2) {
    return p1 * p2;   
    };
     var mqtt,payload;
     var value = 10;
    var reconnectTimeout = 2000;
    function MQTTconnect() {
    if (typeof path == "undefined") {
        path = '/mqtt';
    }
    mqtt = new Paho.MQTT.Client(
            'broker',
            1883,
             "/mqtt",
            "a:" + "abcdef" + ":" + Date.now()
    );
        var options = {
            timeout: 3,
            useSSL: false,
            cleanSession: true,
            onSuccess: onConnect,
            onFailure: function (message) {
                $('#status').val("Connection failed: " + message.errorMessage + "Retrying");
                setTimeout(MQTTconnect, reconnectTimeout);
            }
        };
        mqtt.onConnectionLost = onConnectionLost;
        mqtt.onMessageArrived = onMessageArrived;

        options.userName = 'user';
        options.password = 'password';

        mqtt.connect(options);
    }
    function onConnect() {
        document.writeln("connected");
        // Connection succeeded; subscribe to our topic
        mqtt.subscribe('iot-2/type/+/id/+/evt/evt1/fmt', {qos: 0});
        //$('#topic').val('iot-2/type/" + "+" + "/id/" + "+" + "/evt/evt1/fmt');
    }
    function onConnectionLost(response) {
        setTimeout(MQTTconnect, reconnectTimeout);
        //$('#status').val("connection lost: " + responseObject.errorMessage + ". Reconnecting");
    };
    function onMessageArrived(message) {
        var topic = message.destinationName;
         payload = message.payloadString;  
        //document.writeln(payload);
        //document.write("'n"); 
        //$('#ws').prepend('<li>' + topic + ' = ' + payload + '</li>');
    };
    </script>

</head>
    <body>
        <?php
        $db = '<script type="text/javascript">document.write(MQTTconnect());</script>';
        $db1 = '<script type="text/javascript">document.write(payload);</script>';
        echo $db;
        echo $db1;      
        ?>
    </body>
</html>
你可以

做类似的事情

echo '<script type="text/javascript">'
   , 'document.write(MQTTconnect());'
   , '</script>'
;
在 PHP

中频繁获取数据的适用方法是在 PHP 元素更改时为其分配 js 数据。

例如,当JS函数执行时,你可以写

$("Element").val(output)// from js function 
, $("element").html(output) or
by document.getElementById(element) etc...`

所以,任何变化都会相应地改变php元素的值