在Javascript中调用Php函数

时间:2013-01-16 08:35:30

标签: php javascript html web

  

可能重复:
  Reference: Why does the PHP code in my Javascript not work?

我已经研究了好几天,似乎找不到任何可以让我做我需要做的事情。

我想要做的是从Javascript调用另一个文件中的Php函数。 我的联系表单上有一个验证码,还有一个Javascript文件,用于检查表单并提醒用户是否遗漏了任何内容。我的问题是我无法检查验证码。

        <a href ="#!/Email_Check" class="button1" onclick="$(this).closest('form').submit()"onmouseover="" style="cursor: pointer;"><span></span><strong>Send</strong></a>

这是我调用Javascript和Php的链接

        var nameStr = safe_string(document.getElementById('cf_name').value);
        var emailStr = safe_string(document.getElementById('cf_email').value);
        var messageStr = safe_string(document.getElementById('cf_message').value);

        if(nameStr == "")
        document.getElementById('cf_nameCheck').value = "*Enter your name*";
        else
        document.getElementById('cf_nameCheck').value = "";

        if(emailStr == "" || emailStr.indexOf("@") == -1 || emailStr.indexOf(".") == -1)
        document.getElementById('cf_emailCheck').value = "*Enter a valid email*";
        else
        document.getElementById('cf_emailCheck').value = "";

        if(messageStr == "")
        document.getElementById('cf_messageCheck').value = "*Enter your message*";
        else
        document.getElementById('cf_messageCheck').value = "";  


        document.getElementById('cf_name').value = nameStr;
        document.getElementById('cf_email').value = emailStr;
        document.getElementById('cf_message').value = messageStr;

        if(document.getElementById('cf_nameCheck').value == "")
        if(document.getElementById('cf_emailCheck').value == "")
        if(document.getElementById('cf_messageCheck').value == "")
            open_page('#Email_Succesful');

这是我点击href时调用的Javascript。它检查名称,电子邮件和消息,然后在必要时在另一个文本字段上显示错误消息。

问题是如果不使用某些Php,我就无法检查验证码。

        include_once $_SERVER['DOCUMENT_ROOT'] . '/securimage/securimage.php';

        $securimage = new Securimage();
        if ($securimage->check($_POST['captcha_code']))
        {
            $mail_status = mail($mail_to, $subject, $body_message, $headers);
        }

这是我的另一个文件中的Php脚本,用于检查验证码是否有效,如果是,则执行电子邮件。它在链接的onClick事件上调用。

所以...有人能告诉我如何在Javascript中调用支票吗?这将允许我检查真/假值并确定是否显示有关验证码的警告消息。

如果没有,有什么其他方法可以做我需要做的事情吗?在Php中显示警告可能吗? 如果解决方案是使用像Ajax这样的其他东西,请发布所需的代码,我也研究了Ajax和其他一些东西,但似乎无法使它工作。

4 个答案:

答案 0 :(得分:8)

需要知道这个:

Javascript(除非指定)是一种“客户端”语言,这意味着它在客户端的浏览器上运行,AFTER页面已经编译并从服务器发送。这意味着代码中没有PHP / ASP,只有HTML&amp;的JavaScript。

PHP,ASP,JSP是服务器端语言,只能在服务器端运行。

所以回答你的问题,不是你不能直接获得Javascript来调用PHP(服务器端)函数,但你可以发布到PHP页面,然后它将执行你喜欢的任何函数。< / p>

答案 1 :(得分:4)

答案 2 :(得分:0)

技术的存在是为了抽象出客户端 - 服务器边界。如果您曾经使用过Java RMI,那么您将在家中使用其中一个:

答案 3 :(得分:0)

要从javascript调用任何php函数,您需要发送一个Ajax请求,而该Ajax请求总是可以返回您期望从函数中获得的计算值。