【问题标题】:putting php codes on onclick event of a button将php代码放在按钮的onclick事件上
【发布时间】:2009-09-12 06:35:22
【问题描述】:
<input type="button" name="continue" id="continue" value="Continue" onclick="<? 
            if($_POST['rules']==null) {
                echo "hello();";
                }
            elseif($_POST['rules']!=null) {
                echo "myRedirect();";
            }   

                 ?>" > 

我有一个带有文本区域的表单。当用户在 textarea 为空时点击按钮时,它应该执行函数 hello(),如果 textarea 不为空,它应该执行函数 myRedirect()。函数 hello() 和 myRedirect() 生成不同的对话框。但它似乎不起作用。这段代码有什么问题?

【问题讨论】:

标签: php javascript dialog onclick


【解决方案1】:

这是不可能的。 JavaScript (onlick) 在客户端浏览器中执行,而 PHP 在您的服务器上执行。如果您确实需要执行 PHP 代码,您应该使用 AJAX 发送另一个请求,让您的服务器执行 PHP 部分。

【讨论】:

    【解决方案2】:

    如果您只是检查框的值,则只需要 Javascript... 这应该可以正常工作:

    <script type="text/javascript">
    function check(obj_id){
        var result = document.getElementById(obj_id).value;
        if(result == ""){
            is_null();
        }else{
            is_not_null();
        }
    }
    
    function is_null(){
        alert("null");
    }
    
    function is_not_null(){
        alert("not null");
    }
    </script>
    <input type="text" id="test" />
    <button onclick="check('test')">Test</button>
    

    将要检查的文本框的 id 传递给 check() 函数,它会查找是否在框中输入了任何内容。如果有,它会调用函数“is_null()”和“is_not_null()”,如果文本框中有内容。

    【讨论】:

      【解决方案3】:

      我认为它根本不起作用,因为您试图从 javascript 调用 PHP 代码。 换句话说,PHP 是一种服务器端脚本语言,您正在尝试执行需要提交才能执行的服务器端代码。

      要实现这个功能,你可以简单地写下这段代码

       if($_POST['rules']==null)
       {
        echo "hello();";
       }
       elseif($_POST['rules']!=null)
        {
        echo "myRedirect();";
       }
      

      在您的 PHP 页面顶部,您将得到您想要的。或将输入类型设为“提交”

      【讨论】:

        【解决方案4】:

        您可能需要回发到服务器来执行您想要在 onclick 事件中运行的任何内容。

        另一种解决方法是使用AJAX

        【讨论】:

          【解决方案5】:

          您是否混淆了客户端和服务器端?这就是你所追求的吗?

          <?php
          if($_POST['rules'] == null) {
              echo "hello";
          } else {
              myRedirect();
          }
          ?>
          
          <input type="submit" name="continue" id="continue" value="Continue">
          

          【讨论】:

            【解决方案6】:
            <script>
            function hello(){}
            function myRedirect(){}
            function ifnullz(el){
              if($(el)!=0){
                hello();
              }else{
                myRedirect();
              }
            }
            function $(el){
               document.getElementByID(el).length; //.value?? idk.. something like that.
            }
            </script>
            
            <input onlcick="ifnullz('lolz');">
            <textarea id="lolz"></ta>
            

            【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-08-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多