【问题标题】:Unable to pass PHP variable to a Javascript function无法将 PHP 变量传递给 Javascript 函数
【发布时间】:2010-12-03 08:05:41
【问题描述】:

我正在尝试获取一个 PHP 变量以将值传递给示例 javascript,但如果我尝试回显结果,则没有任何显示。

我尝试将常规字符串作为参数传递,并且效果很好。如果我尝试将 PHP 变量作为参数传递,它似乎不起作用。

JavaScript 中的 AES (Rijndael) 加密测试

<script type="text/javascript" src="Decrypt.js"></script>


</head>

<body>
<?php
mysql_connect("localhost","root","");
mysql_select_db("encryption") or die(mysql_error());
$userId = $_POST['userId'];


    if (($_SERVER['REQUEST_METHOD'] == 'POST') && ($_POST['key'] == ""))
    {

        $query = mysql_query("select * from employee_details where id = '$userId'");
            if($row=mysql_fetch_assoc($query))
                {
                    echo '<tr>';
                    foreach($row as $value)
                    echo '<td>'.$value.'</td>';
                    echo '</tr>';
                }

            else { echo "No rows returned"; }}
    else if (($_SERVER['REQUEST_METHOD'] == 'POST') && ($_POST['key']))
        {

           $columname = "ciphertext";
           $tablename = "employee_details";



                function getField($field, $tbl_name, $condition)
            {

                $result = mysql_query("SELECT $field FROM $tbl_name WHERE id = ".$condition);

                 return @mysql_result($result, 0);
            }

                $myValue = getField($columname,$tablename,$userId);

                echo "Ciphertext = $myValue";
                echo "<br>";
                //doDecryption();

        }
        echo '<script type="text/javascript">
doDecryption("<?php $myValue; ?>");
</script>';
echo "whats happening";
?>
</body>
</html>

JS文件

function doDecryption(param)
 {
    document.write(param);
    document.write("Programming change");
 }

提前致谢。非常感谢任何帮助!!!!

【问题讨论】:

  • 支持那些真正解释为什么这不起作用而不是提供代码示例的人。 PHP 字符串有两种类型和
  • 不醒的原因是他忘记了对“echo”的调用。
  • 你的问题是嵌套的 标签。你不能在 echo 中使用 php 标签。

标签: php javascript function


【解决方案1】:

你不需要 echo 语句来构建 javascript 部分,试试这个:

<script type="text/javascript">
  doDecryption("<?php echo $myValue; ?>");
</script>

但是如果你不想改变它并且你想通过echo写出-Block,你不应该使用“

echo '<script type="text/javascript"> doDecryption(' . $myValue . '); </script>';

【讨论】:

  • 你能发布生成的 JavaScript 吗?
【解决方案2】:

我认为你应该尝试回应你的 var:

doDecryption("<?php echo $myValue; ?>");

【讨论】:

    【解决方案3】:

    我无权访问 PHP atm 进行检查,但我认为这是因为您 echo 使用了不会评估变量的单引号。使用双引号作为回声并在字符串中转义你的 " 看看会发生什么

    【讨论】:

      【解决方案4】:

      是的,最好“回显”您的变量。

      【讨论】:

        【解决方案5】:

        或者把你的回声改成这个

        echo '<script type="text/javascript">
        doDecryption("'.$myValue.'");
        </script>';
        

        【讨论】:

          【解决方案6】:

          试试这个,

          <script type="text/javascript" src="Decrypt.js"></script>
          <?php
          mysql_connect("localhost","root","");
          mysql_select_db("encryption") or die(mysql_error());
          $userId = $_POST['userId'];
          
          
              if (($_SERVER['REQUEST_METHOD'] == 'POST') && ($_POST['key'] == ""))
              {
          
                  $query = mysql_query("select * from employee_details where id = '$userId'");
                      if($row=mysql_fetch_assoc($query))
                          {
                              echo '<tr>';
                              foreach($row as $value)
                              echo '<td>'.$value.'</td>';
                              echo '</tr>';
                          }
          
                      else { echo "No rows returned"; }}
              else if (($_SERVER['REQUEST_METHOD'] == 'POST') && ($_POST['key']))
                  {
          
                     $columname = "ciphertext";
                     $tablename = "employee_details";
          
          
          
                          function getField($field, $tbl_name, $condition)
                      {
          
                          $result = mysql_query("SELECT $field FROM $tbl_name WHERE id = ".$condition);
          
                           return @mysql_result($result, 0);
                      }
          
                          $myValue = getField($columname,$tablename,$userId);
          
                          echo "Ciphertext = $myValue";
                          echo "<br>";
                          //doDecryption();
          
                  } ?>
          <script type="text/javascript">
          doDecryption("<?php $myValue; ?>");
          </script>
          
          </head>
          
          <body>
          <?php
          echo "whats happening";
          ?>
          </body>
          </html>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-06-08
            • 2015-07-10
            • 1970-01-01
            • 1970-01-01
            • 2016-08-21
            • 1970-01-01
            • 2015-05-02
            相关资源
            最近更新 更多