2012-04-26 32 views
1

如何一起使用php和javascript?從做我自己的研究,似乎是不可能的。我明白他們是不同的,他們每個人都有自己特殊的事情。但假設您正在驗證表單。你使用javascript來驗證表單,然後如果沒有錯誤,你運行php來插入一條記錄。你會如何做到這一點?有沒有什麼辦法可以在JavaScript中運行PHP或調用PHP方法?使用javascript和php一起驗證

+7

我想你需要了解一下「客戶端」和「服務器」之間的區別,以及實際運行代碼的位置。 – Cameron 2012-04-26 02:19:04

+0

有一些使用JavaScript和PHP的方法(例如,通過AJAX調用 - 你可以讓JavaScript觸發/運行一個PHP函數),但@Cameron是正確的 - 每個人都有一個地方。例如,你永遠不會在基於Javascript驗證的數據庫中插入記錄 - 你總是會用你的php驗證服務器端的數據。 – 2012-04-26 02:22:38

+0

您可以在html或javascript中嵌入php代碼。服務器在將它發送到客戶端之前先查看它們,剝離並執行php代碼。正如卡梅倫所說,做一些閱讀。只是谷歌的東西像HTML代碼或類似的PHP代碼。 – Terry 2012-04-26 02:23:51

回答

-1

讓有這個簡單的例子: 給出的例子 http://bassistance.de/jquery-plugins/jquery-plugin-validation/

您對PHP驗證這裏有一個例子使用jQuery,你可能會谷歌了。 HTML:

<html> 
     <body> 
     <input type = "text" name = "username" id = "username"></input> 
     <input type = "button" name = "submit" id = "save_button" value = "insert"></input> 
     <div id = "save_stat"></div> <!--This will be the status of the insertion. "loading or sucess!"----> 
     <script> 
     $('#save_button').click(function(){ //assign an event handler 
      //grab values 
      var name = $('#username').val(); //get the value of whatever the user entered 
      //perform HTTP ajax request 
      //could be $.get instead 
      $.post('phpfile.php', (name:name)/*this could be modified to (name:name, password: password) etc.*/, function(data){ //send the data to the php file. 
       $('#save_stat').html(data); 
       }); 
     }); 
     </script> 
    </body> 
    </html> 

現在所有剩下要做的就是創建一個PHP註冊頁面,並將其鏈接,而不是「phpfile.php」 並在該文件加載值,sinply使用$ _ POST ['名「]; OR $ _POST ['password'];等

以上答案(由他人建議)是完美的,因爲他們建議你實際需要創建一個同步的Javascript和PHP應用程序的本質。

** *編輯注意* ** * **** 當創建PHP,給用戶的消息時,即使用echo語句

if(!empty($_POST['name'])){ 
echo "You successfully entered your name!"; 
}else 
    echo "you forgot to enter a name"; 

樣品#2

if(!empty($_POST['name'])){ 
$message = "You successfully entered your name!"; 
}else 
    $message = "you forgot to enter a name"; 
    echo $message; 
+0

$('#save_button')存在錯誤。click((){。如果你可以請修復它,因爲我不熟悉,謝謝! :) – droidus 2012-04-26 02:40:26

+0

我真的很抱歉,這部分現在編輯正確。 – 2012-04-26 03:06:14

0

您可以使用javascript驗證並使用php插入記錄。但是,如果你使用javascript和php來驗證記錄會更好。爲什麼?因爲在您的瀏覽器中關閉javascript時,javascript驗證將毫無用處,這意味着,如果瀏覽器javascript處於關閉狀態,則不會運行驗證,這意味着將無效記錄插入數據庫。所以有一個備份PHP驗證好多了。

+0

它可以單獨做php驗證。但是,如果您不希望每次出現驗證/錯誤時都刷新/重新加載網站,則可以使用JavaScript驗證。 – ron 2012-04-26 02:49:35

6

通常您會看到Javascript用作客戶端的代碼。這意味着訪問您的網站的瀏覽器將下載您的Javascript代碼,進行編譯並自行運行。客戶端代碼僅僅意味着客戶(訪問您的網站的人)運行代碼。

另一方面,PHP用作服務器端的代碼。這意味着您的Web服務器解析並運行您的代碼。服務器端代碼僅僅意味着代碼在您的Web服務器上運行。

您可以通過PHP代碼向Javascript提供信息。例如:

<?php 
    $myVariable = 'a testing variable'; 
?> 
<script type='text/javascript'> 
    var fromTheServer = '<?php echo $myVariable; ?>'; 
</script> 

JavaScript變量fromTheServer被設置爲PHP變量MYVARIABLE的值。所有這些都是將Javascript變量的值作爲字符串輸出,這是Javascript使用的。這種方法可能很有用,比如說,如果你想要一個用戶當前擁有購物車物品的Javascript數組。

<?php 
    // get some shopping cart items using a function 
    $shoppingCartItemsArray = getShoppingCartItems(); 
?> 
<script type='text/javascript'> 
    var shoppingCartItemsArray = "<?php echo implode('|', $shoppingCartItemsArray); ?>"; 

    // split the string value by the | delimeter to get an array 
    shoppingCartItemsArray = shoppingCartItemsArray.split('|'); 
</script> 

現在你已經看到了如何將php與Javascript稍微整合一下。再一次,這不是真的集成,只是從服務器輸出信息。將信息發送到服務器怎麼樣?這是AJAX進來的地方。

假設您正在實施使用Javascript拖放購物車。這個想法是,用戶從您的網站中挑選一件物品並將其拖放到購物車中。在放棄該項目後,該項目應添加到服務器上的用戶購物車中。您將使用AJAX將項目編號發佈到服務器,並等待服務器告訴您項目是否已成功添加。注意:您可以使用原生Javascript代碼構建自己的AJAX方法,但是,爲什麼在使用內置的框架時可以這樣做?我通常使用jQuery,但有一些other JS frameworks你可以使用。

以下非常簡單的例子展示瞭如何在上述情況下使用Javascript和php進行交互。它使用jQuerys $.ajax();函數。

<?php 
    /** File: https://www.example.com/cart.php **/ 
    // .. code 
    if($_POST['action'] === 'addItem'){ 
     $result = addItemToCart($_POST['itemId']); 
     echo $result; 
    } 
    // ... code 

?> 
<script type='text/javascript'> 
    // code .... 
     $.ajax({ 
      url: 'https://www.example.com/cart.php' 
      type: 'POST', 
      data: { 
       action: 'addItem', 
       itemId: getDraggedItem() // get the item id from a function 
      } 
      success: function(result){ 
       $('#ServerMessage').html(result); 
      } 
     }); 
    // code .... 
</script> 

好了,現在你可以很簡單看看PHP和JavaScript的行爲是如果 JavaScript是被用作客戶端代碼。

Javascript也可以用作服務器端代碼,例如,IIS allows you to run JScript in tangent with VBScript

<script type='text/javascript' runat='server'> 
    Response.Write("MS Server here.") 
</script> 

除此之外,CommonJS提供了許多項目目前正在實施服務器端JavaScript代碼的API。您可能已經聽說過其中的一些,特別是Node.js。其中一個項目可能允許您與海誓山盟一起運行PHP和JavaScript,您必須查看。

底線是,Javascript不僅是客戶端代碼。它只是可以在服務器或客戶端上執行的代碼,或者是a way to clean up your iTunes library

0
<?php 
    if(PHP VALIDATION) { 
    echo 'You were not validated'; 
    } else { 
    echo "<script src=\"FILE WITH UR JAVASCRIPT\"><script>" 
    } 
?> 

這個javascript只會在php驗證完成時加載和執行。