【问题标题】:Use of javascript variable in php if statement在 php if 语句中使用 javascript 变量
【发布时间】:2013-10-01 12:58:07
【问题描述】:

在我的代码中,我使用 json 编写了一个 ajax 脚本并保存了您可以在下面看到的变量。之后,我尝试在我的 if 语句 中使用该变量,该变量是用 php 编码的。有可能这样做吗?

          //Script variables 
                var $trstatus_1; //value = GROUP_3, GROUP_2, GROUP_1 or UNDEF
           </script>

           <?php

                //Status 

                $id; //php variable

                echo "<div id='images'>";
                if($trstatus_1 == "GROUP_3"){
                    echo    "<a id='".$id1."' class='tooltip1' href='#'><img src='ball_red_glossy.png' alt='' width='70' height='50'  style='position: relative; left: 0px;' /><span>RED</span></a>";
                }   
                else if($trstatus_1== "GROUP_2"){
                    echo    "<a id='".$id1."' class='tooltip1' href='#'><img src='ball_orange_glossy.png' alt='' width='70' height='50'  style='position: relative; left: 0px;' /><span>ORANGE</span></a>";
                }
                else if($trstatus_1 == "GROUP_1"){
                    echo    "<a id='".$id1."' class='tooltip1' href='#'><img  src='ball_yellow_glossy.png' alt='' width='70' height='50'  style='position: relative; left: 0px;' /><span>YELLOW</span></a>";
                }
                else if($trstatus_1 == "UNDEF"){
                    echo    "<a id='".$id1."' class='tooltip1' href='#'><img  src='ball_blue_glossy.png' alt='' width='70' height='50'  style='position: relative; left: 0px;' /><span>BLUE</span></a>";
                }
                echo "</div>";
           ?>

所以是的,唯一的问题是是否可以在我的 IF 语句中使用 $trstatus_1。以及如何:)

BR

亚历克斯

更新

<script>

setInterval("yourAjaxCall()",10000);
                function yourAjaxCall() 

                {

                    $.ajax(
                    {
                        type: "POST",   
                        url: 'api.php',                  //the script to call to get data          
                        data:  {vtrstatus: $V_TR_STATUS},                       //you can insert url argumnets here to pass to api.php
                        dataType: 'json',                //data format
                        success: function(data)          //on recieve of reply
                        {   


                            var trstatus = data[0].group_class;
                            trstatus_1 = trstatus;
                            var trstatus_1;
                            //alert(trstatus_1);

                        } 

                    });
                  };
 </script>
<script>
                //Script variables

                var trstatus_1;
                var color;

                if( $trstatus_1 == 'GROUP_1' ){
                    color = 'red';
                }else if ( $trstatus_1 == 'GROUP_2' ){
                    color = 'orange';
                }else if ( $trstatus_1 == 'GROUP_3' ){
                    color = 'yellow';
                }else if ( $trstatus_1 == 'UNDEF' ){
                    color = 'blue';
                }

                var el = "<a class='tooltip1' href='#'><img src='ball_" + color + "_glossy.png' alt='' width='70' height='50'  style='position: relative; left: 0px;' /><span>" color.toUpperCase() "</span></a>";


                $('#images').append(el);

      </script>
                <div id="images">
                </div>

这是正确的吗?

BR

【问题讨论】:

  • 不,不是。 PHP是服务器端,Javascript是客户端。 Javascript 将在 PHP 完成后运行。您只能通过从服务器请求新的 PHP 来将值从 Javascript 传输到 PHP
  • @alex java !== javascript
  • @devnull69 There is no "Javascript",ECMAScript 实现是客户端,PHP 是服务器端here
  • 确实,授予。为了完整性:有服务器端的 ECMAScript 实现。但在本例中,我假设您使用的是通常称为“Javascript”的客户端实现 :-)
  • 您的 JavaScript 变量似乎无效,因为它的开头有一个“$”。我不能 100% 确定这是不对的,但我自己不会这样做。 ..

标签: javascript php if-statement


【解决方案1】:

简短回答:不。

你想做什么?您可以尝试使用 javascript 而不是 PHP 添加这些按钮,或者您可以重新加载页面,发布要在 PHP 中使用的变量

JavaScript 解决方案:

var trstatus_1;
var color;

if( trstatus_1 == 'GROUP_1' ){
    color = 'blue';
}elseif ( trstatus_1 == 'GROUP_2' ){
    color = 'red';
}elseif ( trstatus_1 == 'GROUP_3' ){
    color = 'green';
}elseif ( trstatus_1 == 'UNDEF' ){
    color = 'yellow';
}//sorry for being too lazy to do the colours right

var el = "<a id='SeeNotesBelow' class='tooltip1' href='#'><img src='ball_" + color + "_glossy.png' alt='' width='70' height='50'  style='position: relative; left: 0px;' /><span>" + color.toUpperCase() + "</span></a>"

//assuming jQuery
$('#images').append(el);
//also assuming #images already exists

注意:如果你需要在 PHP 中生成 ID,则创建元素,然后修改它,如下所示:

//again, assuming jQuery
$('#images .tooltip1 img').src = 'ball_' + color + '_glossy.png';
$('#images .tooltip1 span').innerHTML = color.toUpperCase();

【讨论】:

  • 我试图写出的这些图像将在稍后用于动画中,并且需要获得一个有效的 if 语句。该页面不会重新加载。得到一个循环 ajax 以获取新数据的间隔。尝试全部作为 javascript,但失败了。
  • 我建议用 JavaScript 来做。。给我一分钟。
  • @AlexGoransson 现在我的回答好运吗?
  • 好吧,试图弄清楚它是如何工作的。没有让它工作这么远。不需要身份证吧? $('#images').append(el); 是否足够? ?图片不显示atm。我有一个 id 为“图像”的 div。他们应该出现在那里吗?
  • 是的,他们应该这样做。你在运行 jQuery 吗? 'images' div 中是否出现任何 HTML?
【解决方案2】:

PHP 代码在服务器端执行。 Javascript 代码在客户端执行。

您可以从 PHP 填充 Javascript 变量,因为首先执行服务器端脚本,但反过来是不可能的。

【讨论】:

    【解决方案3】:

    这是不可能的,因为 Javascript 在客户端运行,PHP 在服务器上运行。但是您可以将您的 javascript 变量发布到该 PHP 页面并获取要在 PHP 中使用的变量值。

    【讨论】:

      【解决方案4】:

      您可以将 php 部分简化为以下行

      echo    "<a id='".$id1."' class='tooltip1' href='#'><img src='#' alt='' width='70' height='50'  style='position: relative; left: 0px;' /><span></span></a>";
      

      然后将if移到javascript端,根据trstatus的值修改标记。

      【讨论】:

      • 试图减少你所说的php并在脚本中执行if。但不知何故,php不听if语句,所有四个img都被写出来了。
      • 我的意思是:如果你在js上有你的状态值,你可以在php中打印出容器,然后将逻辑移动到js。您将拥有一个具有 html 结构的页面,并且只需要使用图像 src 的正确值和 span 元素中的描述来填充它。你在用什么js框架吗?
      【解决方案5】:
      <script> 
      var $trstatus_1; //value = GROUP_3, GROUP_2, GROUP_1 or UNDEF
      
         sessionSave('status',$trstatus_1);
          function sessionSave(field,value)
          {
          val = $(value).val();
          $.post("sessionpage.php", { name: field, value:val } );
          }
      
        </script>    
      //new page in php
          sessionpage.php
          <?php session_start();
          $name=$_REQUEST['name'];
          $value=$_REQUEST['value'];
          $_SESSION[$name]=nl2br($value);
           ?>
       <?php
                      // new variable
                      $trstatus_1=$_SESSION['status'];//value = GROUP_3, GROUP_2, GROUP_1 or UNDEF
                      //Status 
      
                      $id; //php variable
      
                      echo "<div id='images'>";
                      if($trstatus_1 == "GROUP_3"){
                          echo    "<a id='".$id1."' class='tooltip1' href='#'><img src='ball_red_glossy.png' alt='' width='70' height='50'  style='position: relative; left: 0px;' /><span>RED</span></a>";
                      }   
                      else if($trstatus_1== "GROUP_2"){
                          echo    "<a id='".$id1."' class='tooltip1' href='#'><img src='ball_orange_glossy.png' alt='' width='70' height='50'  style='position: relative; left: 0px;' /><span>ORANGE</span></a>";
                      }
                      else if($trstatus_1 == "GROUP_1"){
                          echo    "<a id='".$id1."' class='tooltip1' href='#'><img  src='ball_yellow_glossy.png' alt='' width='70' height='50'  style='position: relative; left: 0px;' /><span>YELLOW</span></a>";
                      }
                      else if($trstatus_1 == "UNDEF"){
                          echo    "<a id='".$id1."' class='tooltip1' href='#'><img  src='ball_blue_glossy.png' alt='' width='70' height='50'  style='position: relative; left: 0px;' /><span>BLUE</span></a>";
                      }
                      echo "</div>";
                 ?>
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-09
      • 1970-01-01
      相关资源
      最近更新 更多