PHP と JavaScript を一緒に使用するにはどうすればよいですか? 私自身の研究から、それは不可能に思えます。私は彼らが異なっていることを理解しており、それぞれが独自の特別なことをしています. しかし、フォームを検証しているとしましょう。JavaScript を使用してフォームを検証し、エラーがなければ、php を実行してレコードを挿入します。これをどのように行いますか?javascriptでphpを実行したり、phpメソッドを呼び出したりする方法はありますか?
5 に答える
通常、Javascript がクライアント側のコードとして使用されます。これは、Web サイトにアクセスするブラウザが Javascript コードをダウンロードし、コンパイルして実行することを意味します。クライアント側のコードとは、クライアント (Web サイトにアクセスした人) がコードを実行することを意味します。
一方、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 が使用する文字列として php 変数の値を出力することだけです。このアプローチは、たとえば、ユーザーが現在カートに入れているショッピング カート アイテムの 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を使用しますが、他にも使用できる JS フレームワークが多数あります。
次の非常に単純な例は、上記の状況下で 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>
これで、 javascript がクライアント側のコードとして使用されている場合に、php と Javascript がどのように動作するかを簡単に確認できます。
Javascript はサーバー側コードとしても使用できます。たとえば、IIS では、VBScript と連携して JScript を実行できます。
<script type='text/javascript' runat='server'>
Response.Write("MS Server here.")
</script>
これに加えて、CommonJSは、多くのプロジェクトが現在実装しているサーバー側 Javascript コード用の API を提供します。これらのいくつか、特にNode.jsについて聞いたことがあるかもしれません。これらのプロジェクトの 1 つを使用すると、php と JavaScript を相互に連携して実行できる場合があります。確認する必要があります。
肝心なのは、Javascript はクライアント側のコードだけではないということです。これは、サーバーまたはクライアントのいずれかで、またはiTunes ライブラリをクリーンアップする方法として実行できる単純なコードです。
JavaScript と PHP の両方で検証する必要があります。ただし、最も重要なのは PHP の検証です。なぜなら、Javascript はフロントエンド コードであるため、ユーザーが変更したり、単に無効にしたりすることができるからです。したがって、挿入する前に、PHP で検証する必要があります。
何千もの JavaScript 検証プラグインがありますが、良いプラグインは jQuery Validate です: http://bassistance.de/jquery-plugins/jquery-plugin-validation/
ここに PHP 検証の例があります: http://buildinternet.com/2008/12/how-to-validate-a-form-complete-with-error-messages-using-php-part-1/
javascriptを使用して検証し、phpを使用してレコードを挿入できます。ただし、javascriptとphpを使用してレコードを検証する方がはるかに優れています。なんで?ブラウザでjavascriptをオフにすると、javascriptの検証は役に立たないため、ブラウザのjavascriptがオフの場合、検証は実行されず、無効なレコードがデータベースに挿入されます。したがって、バックアップphp検証を行う方がはるかに優れています。
<?php
if(PHP VALIDATION) {
echo 'You were not validated';
} else {
echo "<script src=\"FILE WITH UR JAVASCRIPT\"><script>"
}
?>
この JavaScript は、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」の代わりにリンクするだけです。そのファイルに値をロードするには、単純に $_POST['name']; を使用します。または $_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;