如何使用多个按钮通过PHP运行多个功能

时间:2013-12-29 00:29:44

标签: javascript php jquery html function

我设法让我以前的项目在我点击网页上的按钮的地方工作,并通过点击按钮点击运行PHP代码告诉所有设备运行JavaScript函数,该函数读取PHP代码正在更改的文本文件的值。

现在我想做同样的事情,但是我希望 3 不同的按钮在浏览网页的所有设备上运行 3 不同的JavaScript功能。< / p>

我尝试过制作3个不同的PHP文件,3个不同的文本文件和3个不同的功能,但它不起作用(似乎我认为我没有点击按钮),而且看起来像这不是一个非常有效的方法。对于所有不同的函数,我认为这是为了同时运行多个$ .get()函数。

我如何拥有1个PHP文件和1个$ .get()函数并使其工作?

谢谢, Fjpackard。

编辑: 这是我尝试过的代码,虽然如果可能的话,如果可以的话,我可以采用不同的更有效的方式。

的index.html:

<title>PHP Test</title>
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script>

    var theButton;

    function myClick()
    {
        $.post('script.php', {});
    }

    function myClick2()
    {
        $.post('script2.php', {});
    }

    function myClick3()
    {
        $.post('script3.php', {});
    }

    function myFunc() {
        //The code you want to run on the clients
        $("#theDiv").text("Say Hello");
        setTimeout(function(){
            $("#theDiv").text("");
        },2000);
    }

    function myFunc2() {
        //The code you want to run on the clients
        $("#theDiv").text("Say Goodbye");
        setTimeout(function(){
            $("#theDiv").text("");
        },2000);
    }

    function myFunc3() {
        //The code you want to run on the clients
        $("#theDiv").text("Zip Your Mouth");
        setTimeout(function(){
            $("#theDiv").text("");
        },2000);
    }

    var lastValue = '';
    var lastValue2 = '';
    var lastValue3 = '';

        $("document").ready(function() {
        var deviceAgent = navigator.userAgent.toLowerCase();
        var agentID = deviceAgent.match(/(iphone|ipod|ipad)/);
        if (agentID) {

            // mobile code here
            $("#btn1").remove();
            $("#btn2").remove();
            $("#btn3").remove();
            setInterval(function() {
                $.get(
                    'script.php',
                    {},
                    function (data) {
                        if (data != lastValue) {
                            myFunc();
                            lastValue = data;
                        }
                    }

                );
                /*$.get(
                    'script2.php',
                    {},
                    function (data2) {
                        if (data2 != lastValue2) {
                            myFunc2();
                            lastValue = data2;
                        }
                    }

                );
                $.get(
                    'script3.php',
                    {},
                    function (data3) {
                        if (data3 != lastValue3) {
                            myFunc3();
                            lastValue = data3;
                        }
                    }

                );*/
            },100);

        }
        else {
            $("#theDiv").remove();
        }


    });

</script>
<div id="theDiv"></div>
<button id="btn1" class="btn" onclick="myClick()">Say Hello</button><br>
<button id="btn2" class="btn" onclick="myClick2()">Say Goodbye</button><br>
<button id="btn3" class="btn" onclick="myClick3()">Zip Your Mouth</button>

的script.php:

<?php
    // Disable cache
    header("Expires: Thu, 01 Jan 1970 00:00:00 GMT");
    header('Cache-Control: max-age=0, no-cache, no-store, must-revalidate');
    header('Cache-Control: post-check=0, pre-check=0', false);
    header("Pragma: no-cache");

    $file = 'file.txt';

    if ($_SERVER['REQUEST_METHOD'] === 'POST')
    {
        // POST request

        $previous = file_get_contents($file);
        if ($previous === 'true')
        {
            file_put_contents($file, 'false');
        }
        else
        {
            file_put_contents($file, 'true');
        }
    }
    else
    {
        // not POST request, we assume it's GET

        echo file_get_contents($file);
    }
    exit();
?>

script2.php:

<?php
    // Disable cache
    header("Expires: Thu, 01 Jan 1970 00:00:00 GMT");
    header('Cache-Control: max-age=0, no-cache, no-store, must-revalidate');
    header('Cache-Control: post-check=0, pre-check=0', false);
    header("Pragma: no-cache");

    $file = 'file2.txt';

    if ($_SERVER['REQUEST_METHOD'] === 'POST')
    {
        // POST request

        $previous = file_get_contents($file);
        if ($previous === 'true')
        {
            file_put_contents($file, 'false');
        }
        else
        {
            file_put_contents($file, 'true');
        }
    }
    else
    {
        // not POST request, we assume it's GET

        echo file_get_contents($file);
    }
    exit();
?>

script3.php:

<?php
    // Disable cache
    header("Expires: Thu, 01 Jan 1970 00:00:00 GMT");
    header('Cache-Control: max-age=0, no-cache, no-store, must-revalidate');
    header('Cache-Control: post-check=0, pre-check=0', false);
    header("Pragma: no-cache");

    $file = 'file3.txt';

    if ($_SERVER['REQUEST_METHOD'] === 'POST')
    {
        // POST request

        $previous = file_get_contents($file);
        if ($previous === 'true')
        {
            file_put_contents($file, 'false');
        }
        else
        {
            file_put_contents($file, 'true');
        }
    }
    else
    {
        // not POST request, we assume it's GET

        echo file_get_contents($file);
    }
    exit();
?>

1 个答案:

答案 0 :(得分:1)

您可以在php文件中使用一些GET参数和array

JS代码:

function myClick()
    {
        $.post('script.php?button=1', {});
    }

    function myClick2()
    {
        $.post('script.php?button=2', {});
    }

    function myClick3()
    {
        $.post('script.php?button=3', {});
    }

然后在script.php

<?php
    session_start();
    // Disable cache
    header("Expires: Thu, 01 Jan 1970 00:00:00 GMT");
    header('Cache-Control: max-age=0, no-cache, no-store, must-revalidate');
    header('Cache-Control: post-check=0, pre-check=0', false);
    header("Pragma: no-cache");

    $fileArray = array("1" => "file.txt", "2" => 'file2.txt', "3" => 'file3.txt');

    if(isset($_SESSION['lastFile']) && !isset($_GET['button'])){
        $file = $_SESSION['lastFile'];
    }else if(isset($_GET['button'])){
        $file = $fileArray[$_GET['button']];
    }else{
        $file = "file.txt";
    }

    $_SESSION['lastFile'] = $file;

这样,如果没有设置GET参数,脚本将回退到先前使用的文件(在会话中设置),或者加载默认值(file.txt)

因此,如果您向script.php?button=2发出Ajax请求,则会加载文件file2.txt,并将其插入session variable

稍后当您请求script.php(没有按钮部分)时,脚本会检测到没有button get variable。但它知道会话中有一个变量与之前使用过的文件,因此脚本将加载以前使用过的文件。