2013-01-16 73 views
0

可能重複:
Reference: Why does the PHP code in my Javascript not work?調用PHP函數在Javascript

我一直在研究了幾天,不能似乎發現了什麼,讓我什麼,我需要做的。

我想要做的是在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'); 

這是我的JavaScript是點擊HREF時被調用。它會檢查名稱,電子郵件和消息,然後在其他文本字段中顯示錯誤消息(如果有必要)。

問題是我不能檢查captcha沒有使用一些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和其他一些東西,但似乎也無法使其工作。

回答

8

需要知道這一點:

的Javascript(指定除外)是一個「客戶端」的語言,這意味着它運行在客戶端瀏覽器後頁面已經被編譯並從服務器發送。這意味着代碼中沒有PHP/ASP,只有HTML & Javascript。

PHP,ASP,JSP是隻能在服務器端運行的服務器端語言。

所以要回答你的問題,不,你不能直接獲得Javascript來調用一個PHP(服務器端)函數,但你可以發佈到一個PHP頁面,然後將執行你喜歡的任何功能。

0

爲了從JavaScript調用任意PHP函數,你需要發送一個Ajax請求,該請求反過來可以始終返回您期望從該函數得到的計算值。