web-dev-qa-db-ja.com

JavaScript変数をPHP変数に送信します

可能性のある複製:
JavaScript変数をPHPに渡す方法

最初にJavaScriptをPHPに変換する必要があると考えていましたが、サーバー側とクライアント側の実行のためにできないことがわかりました。だから今、私は1つの変数を送信したいだけです

<script type="text/javascript">
function scriptvariable()
{        
    var theContents = "the variable";
}
</script>

PHP変数へ

<?php
$phpvariable
?>

JavaScriptのその関数は、ボタンをクリックしたときに実行されます。

今、私のphpvariableを使用してデータベース内のデータを検索するために、そのphpvariableをJavaScriptに割り当てる方法がわかりません。私はそれを私のURLまたは何かに追加してページを更新できることを知っていますが、このAjaxメソッドを私のウェブページでさらに使用する必要があるかもしれないので、AJAXでそれをしたいと思います。

それで、1つの簡単なことをするためにページにコードのページをダンプすることなくこれを行う簡単な方法はありますか?

40
mrbunyrabit

ジョーダンがすでに言ったように、サーバーが値を処理する前にjavascript変数をサーバーにポストバックする必要があります。これを行うには、フォームを送信するJavaScript関数をプログラムするか、ajax/jqueryを使用します。 jQuery.post

おそらくあなたにとって最も簡単なアプローチはこのようなものです

function myJavascriptFunction() { 
  var javascriptVariable = "John";
  window.location.href = "myphpfile.php?name=" + javascriptVariable; 
}

Myphpfile.phpでは、javascriptの実行後に$_GET['name']を使用できます。

よろしく

46
Grrbrr404

PHPはサーバー上で実行され、Javascriptはクライアント上で実行されるため、値をサーバーに送信せずにPHP変数をJavascript変数と等しく設定することはできません。ただし、Javascript変数をPHP変数と等しくなるように設定できます。

<script type="text/javascript">
  var foo = '<?php echo $foo ?>';
</script>

JavaScript値をPHPに送信するには、AJAXを使用する必要があります。 jQueryでは、次のようになります(可能な限り最も基本的な例)。

var variableToSend = 'foo';
$.post('file.php', {variable: variableToSend});

サーバーでは、投稿で送信された変数を受信する必要があります。

$variable = $_POST['variable'];
67
Jordan Brown

それはあなたのページの振る舞いに依存します。これを非同期で実行するには、AJAXを使用する必要があります。 Googleで「jQuery post()」を試してみてください。

他の場合、ユーザーがフォームを送信したときにこれが発生する場合は、非表示フィールドで変数を送信するか、開いているURLの末尾に?variableName=someValue"を追加できます。 :

http://www.somesite.com/send.php?variableName=someValue

または

http://www.somesite.com/send.php?variableName=someValue&anotherVariable=anotherValue

この方法で、PHPからこの値にアクセスできます:

$phpVariableName = $_POST["variableName"];

POSTメソッドを使用するフォームの場合:

$phpVariableName = $_GET["variableName"];

gETメソッドまたは上記のurlメソッドに追加するフォームの場合(クエリ文字列)。

3
Ricardo Souza