0

我需要按钮的实时循环“状态检查”。按钮“class”或“id”名称将根据从 txt 文件中获取的值进行更改。然后将使用 CSS 处理此类/id 名称。此外,这个按钮类或 id 取决于名称应该触发/调用函数只是为了运行特定的 php 文件。

之前:我只使用 PHP 完成了它,但没有实时“状态检查”:< 看起来像这样:

<?php
if(isset($_POST['run1']))
{exec('run1.bat');}?>         // In this part it is waiting a button push with specific                 
<?php                        //  class name and then runs some bat file which runs some                   
if(isset($_POST['run2']))   //   command and writes output to R1.txt
{exec('run2.bat');}?>
<?php

$r1 = "R1.txt";                   //This part reads txt file R1.txt  ...
$fr1 = fopen($r1, "a+");         
$sizer1 = filesize($r1);
$tr1 = fread($fr1, $sizer1);
sscanf($tr1, "SOMERANDOM TEXT(%d)", $nr1);   // ...and gets value 1 or none
fclose($fr1);
?>
<form action="" method="post">   //This part is a form
<?php
if ($nr1=="1")                  //Here it check's value from txt and load specific
{                               //  type of button.
 echo '<input type="submit" class="runing1" name="run1" value="">' . "\n";
}
else
{
 echo '<input type="submit" class="runing2" name="run2" value="">' . "\n";
}
?>

现在我认为它的结构是这样的:会有 check.php 类似的东西

    <?php
    $r1 = "R1.txt";                   //This part reads txt file R1.txt  ...
    $fr1 = fopen($r1, "a+");         
    $sizer1 = filesize($r1);
    $tr1 = fread($fr1, $sizer1);
    sscanf($tr1, "SOMERANDOM TEXT(%d)", $nr1);   // ...and gets value 1 or none
    fclose($fr1);
    ?>
    <?php
    $r2 = "R2.txt";                   //This part reads txt file R2.txt  ...
    $fr2 = fopen($r2, "a+");         
    $sizer2 = filesize($r2);
    $tr2 = fread($fr2, $sizer2);
    sscanf($tr2, "SOMERANDOM TEXT(%d)", $nr2);   // ...and gets value 1 or none
    fclose($fr2);
    ?>

这个 PHP 文件应该 POST 那些 $nr1 和 $nr2 值在 Ajax 的外部。然后会有 index.php/htm 有几个按钮,它们通过 check.php 运行某种循环并获取按钮的值并在按钮上应用指定的类或 id。像是/否或开/关等。然后根据按钮状态类/ID,它应该运行特定的功能。在“完美”中,如果在 AJAX 的帮助下类或 id 可能是可变的,那就太好了,因为它可以发布到另一个具有类似代码的 run.php 文件......

<?php
if(isset($_POST['$class-name-from-button']))
{exec('($_POST['$class-name-from-button']).bat');}?>                          
<?php  

我认为它可以节省很多“重复同一行代码”的空间。

4

1 回答 1

0

您可以使用 $.post、$.get 或更通用的 $.ajax(您可以在此处手动指定数据是否应该以 post 或 get 格式发送)。

我将演示 $.post 格式。

var url = "yourserver.com/check.php";
var data = "checking=true";
$.post(url, data, function(result){
if(result == "1")
$("input").removeClass("runing2").addClass("runing1");
else
$("input").removeClass("runing3").addClass("runing2");

});

您的 check.php 应该包含以下代码:

<?php
if(isset($_POST["checking"])){
$r1 = "R1.txt";                   //This part reads txt file R1.txt  ...
$fr1 = fopen($r1, "a+");         
$sizer1 = filesize($r1);
$tr1 = fread($fr1, $sizer1);
sscanf($tr1, "SOMERANDOM TEXT(%d)", $nr1);   // ...and gets value 1 or none
fclose($fr1);

echo $nr1;
}
?>

以下是一些参考资料:

http://api.jquery.com/jquery.post/

http://api.jquery.com/jquery.get/

http://api.jquery.com/jquery.ajax/

于 2014-06-25T21:47:47.360 回答