【问题标题】:Calling PHP Function within Javascript在 Javascript 中调用 PHP 函数
【发布时间】:2010-11-13 14:26:26
【问题描述】:

我想知道是否可以在 javascript 中调用 php 函数,仅当且仅当条件为真时。例如

<script type="text/javascript">
if (foo==bar)
{
phpFunction(); call the php function
}
</script>

有没有办法做到这一点。如果有,请告诉我。谢谢

【问题讨论】:

标签: php javascript ajax


【解决方案1】:

PHP 是服务器端,Javascript 是客户端,所以不是真的(是的,我知道有一些服务器端 JS)。您可以做的是使用 Ajax 并调用 PHP 页面以获取一些结果。

【讨论】:

【解决方案2】:

PHP 函数不能以您上面说明的方式调用。但是您可以使用 AJAX 调用 PHP 脚本,代码如下所示。你也可以找到一个简单的例子here。如果您需要进一步说明,请告诉我

使用 Jquery

<script type="text/javascript" src="./jquery-1.4.2.js"></script>
<script type="text/javascript">
function compute() {
    var params="session=123";
    $.post('myphpscript.php',params,function(data){ 
            alert(data);//for testing if data is being fetched
            var myObject = eval('(' + data + ')');
            document.getElementById("result").value=myObject(addend_1,addend_2);
        }); 
}
</script>

准系统 Javascript 替代方案

   <script type="text/javascript">

    function compute() {
        var params="session=123"
        var xmlHttp; 
        var addend_1=document.getElementById("par_1").value;
        var addend_2=document.getElementById("par_2").value;

        try 
        { 
            xmlHttp = new XMLHttpRequest(); 
        } 
        catch (e) 
        { 
            try 
            { 
                xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); 
            } 
            catch (e) 
            { 
                try 
                { 
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
                } 
                catch (e) 
                { 
                    alert("No Ajax for YOU!"); 
                    return false; 
                } 
            } 
        } 
        xmlHttp.onreadystatechange = function() 
        { 
            if (xmlHttp.readyState == 4) { 
                ret_value=xmlHttp.responseText;
                var myObject = eval('(' + ret_value + ')');
                document.getElementById("result").value=myObject(addend_1,addend_2);
            }
        }       
        xmlHttp.open("POST", "http://yoururl/getjs.php", true);
        xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlHttp.setRequestHeader("Content-length", params.length);
        xmlHttp.setRequestHeader("Connection", "close");
        xmlHttp.send(params);
    }
    </script>

【讨论】:

  • 我真的不得不为 Ajax 推荐 jQuery 库。它只是让事情变得非常简单和无忧。
  • 当然,但是每个新手都需要从头开始,因此我使用准系统 javascript
  • 感谢您的帮助。还有一件事可以向我展示一个简单的 jQuery.ajax 示例。我想知道它的基本实现。
  • 根据要求说明了使用 jquery 的相同 Ajax 发布请求。如果您对此有任何疑问,请参考其他受访者提供的链接或大声疾呼。
  • 那是绝对正确的,我们必须知道这一切是如何调试低级错误的,不过,添加一个 jquery 推荐是很好的。
【解决方案3】:

不,那是不可能的。 PHP 代码运行之前(服务器端)javascript(客户端)

【讨论】:

    【解决方案4】:

    其他答案是对的。

    但是,有一个库 XAJAX,它使用 AJAX 和一个特别设计的 PHP 库来帮助模拟从 JavaScript 调用 PHP 函数的行为。

    这有点复杂,学习在 jQuery 中使用 $.get 和 $.post 会容易得多,因为它们设计得更好且更简单,一旦你了解它们的工作原理,你就赢了'感觉不需要直接从 JavaScript 调用 PHP。

    【讨论】:

      【解决方案5】:

      PHP 总是在页面加载之前运行。 JavaScript 总是在页面加载后运行。他们从不串联。

      最接近的解决方案是使用 AJAX 或浏览器重定向从服务器调用另一个 .php 文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-19
        • 1970-01-01
        • 1970-01-01
        • 2012-12-30
        • 2013-02-02
        • 1970-01-01
        • 2015-07-02
        • 1970-01-01
        相关资源
        最近更新 更多