【问题标题】:How do I embed Javascript in PHP code?如何在 PHP 代码中嵌入 Javascript?
【发布时间】:2014-05-02 08:59:20
【问题描述】:

我有一个 HTML 表单和 PHP 代码。在我的表单中,我有一个文本框和一个文本区域。在两者中,我都包含了“禁用”选项。我希望两个文本框都保持禁用状态,直到用户决定单击“编辑”按钮,在这种情况下,两个文本框都应该启用,以便可以进行更改并再次保存输出。根据我所做的研究,唯一的方法是使用 javascript,所以我在我的 PHP 中包含了以下代码;

if (isset($_POST['edit']))
{
    echo "<script type=\"text/javascript\">";
    echo "var oldnotes = document.getElementById('oldnotes');";
    echo "oldnotes.disabled = false;";
    echo "var record = document.getElementById('record');";
    echo "record.disabled = false;";
    echo "</script>";
}

我也试过了;

if (isset($_POST['edit']))
{
    echo "<script type=\"text/javascript\">";
    echo "$('#oldnotes').removeAttr('disabled')";
    echo "$('#record').removeAttr('disabled')";
    echo "</script>";
}

但没有运气:(

我没有收到任何错误,单击“编辑”按钮后,文本框仍然处于禁用状态。谁能帮我解决这个问题?提前致谢。

【问题讨论】:

  • 请贴出生成的html代码。
  • “编辑”按钮是否位于带有 method="post" 的表单内?
  • 有什么东西触发了这些回声吗?因为我看到您正在积极地将元素更改为禁用
  • JavaScript 与标题无关 - 请更改标题以便 相关。 PHP 只能生成 HTML(我们发送到输出流的任何内容)。这可能包含 JS,但这不是要问的问题.. 即 查看生成的输出

标签: javascript php


【解决方案1】:

你总是可以做一个 cookie 使用document.cookie()onclick=“” 设置为更改cookie 并制作一个在您打开网站时运行并获取 cookie 的脚本(使用 window.onload = function(){/*code goes here*/}

【讨论】:

    【解决方案2】:
     <?
     <script language='javascript'>
     (javascript code here)
     </script>
     ?>
    

    【讨论】:

      【解决方案3】:

      尝试在您的按钮上使用 onclick

      <input type="button" name="edit" id="edit" onclick="document.getElementById('oldnotes').disabled=false; document.getElementById('record').disabled=false; return false;">
      

      希望对你有帮助。

      【讨论】:

      • 感谢您的回复,一切正常,但文本框已启用,然后页面立即刷新,因此文本框再次被禁用。有任何想法吗?如果没有,它可能只是某处的代码有问题......我肯定会找到它。如果没病明天就来哭求救! :)
      • 对不起,我忘了说:插入“return false;”作为 onclick="..." 中的最后一件事。它将强制按钮不提交表单。
      【解决方案4】:

      这是解决此类问题的更好方法:

      if (isset($_POST['edit'])){
      ?>
      
      <script type="text/javascript">
      var oldnotes = document.getElementById('oldnotes');
      oldnotes.disabled = '';
      var record = document.getElementById('record');
      record.disabled = '';
      </script>
      
      <?php
      }
      

      【讨论】:

        【解决方案5】:

        如果你想在 PHP 中使用 JS,你可以阅读这里: how to write javascript code inside php

        然而:您似乎希望根据提供的实现在 php 逻辑中评估时自行调用 JS。

        从技术上讲,您的 JS 只是声明它应该重新启用控件。而是将 JS 功能添加到提交控件的 OnClick 中,它应该可以正常工作。这也是一种更快的功能测试方法。

        <a href="javascript:void(0);" onclick="document.getElementById('oldnotes').disabled=false;" >
        

        一旦点击它,它将隐藏相应的控件,而不是尝试动态编写未执行的新 JS。这是经过试验和测试的,应该适合您。

        希望对你有帮助!

        【讨论】:

          【解决方案6】:

          使用这个 jquery 代码:

          <script>
          $('#oldnotes,#record').attr('disabled','')
          </script>
          

          【讨论】:

            【解决方案7】:

            第二种方法似乎是正确的,但你在那里缺少;。此外,您还没有添加任何换行符。

            这是我的建议:

            <?php
            
            if (isset($_POST['edit'])) {
                ?>
                <script type="text/javascript">
                    alert("Check entry"); // Use this for checking if your script is reaching here or not
                    $('#oldnotes, #record').removeAttr('disabled');
                </script>
                <?php
            
            }
            ?>
            

            你不需要回应整个事情。您可以简单地将其从 PHP 中取出并将其保存在 if 块中。

            另外,我一直在提醒您检查您的代码结构是否正确。如果您在单击编辑按钮时收到警报,则表示您走在正确的道路上。你只需要在JS上锻炼。

            如果没有,您的编辑按钮和form POST 有问题

            【讨论】:

              【解决方案8】:

              脚本类型使用单引号

              echo "<script type='text/javascript'>\n";
              //javascript goes here
              echo "</script>";
              

              【讨论】:

                猜你喜欢
                • 2011-03-22
                • 1970-01-01
                • 2013-08-27
                • 2012-08-30
                • 2012-09-09
                • 1970-01-01
                • 2014-12-16
                • 1970-01-01
                • 2021-06-02
                相关资源
                最近更新 更多