質問: Math.floor( Math.random() * 51 ); $('#num').val(test); }); }); ``` いつもお世話になっています。 この書き方でなんとか動くのですが、を付けず、submitを使わずに「ここをクリック」をクリックしただけで、javascriptのtestの変数の数値をPHPのnumに代入することはできますでしょうか? 「ここをクリック」を押したら、0から50までの数値がランダムで表示されるようにしたいです。 今回例として乱数をつかっていますので紛らわしいですがここは気に留めないでください。 phpは特に初心者なのでわからないところが多くて申し訳ございません。 追記いたします。 当方がやりたいことは、フォームを使ってjavascriptの変数のtestをsubmitボタンを使わずにPHPの$numに代入し、そして出力をしたいことです。順番としたらまずtestが決まって、フォームに渡され、そしてPHPの$numにtestが渡ってくるといった感じです。
回答: javascriptでform submitする記述を追加します。 * jQuery:jQueryでsubmit(サブミット)する方法 追記: 下記のような記述だと誤解を招きますのでご注意ください。 > > javascriptのtestの変数の数値をPHPのnumに代入することはできますでしょうか? > > > この文章をそのまま解釈すると回答は「できません」となります。 * PHPはサーバーサイドの言語。画面を表示するため(前)に動作する。 * javascriptはクライアントサイドの言語。画面が表示されてから動作する。 **動く場所が違うので並行して実行はできません。** javascriptからphpを呼び出すajaxという仕組みはありますが、 これもGETなりPOSTなりでjavascriptから非同期で値を送信しているだけです。 「javascriptで任意の値をinputタグにセットしてサーバーにPOST送信した結果、サーバー側でPHPが送信された結果を受け取る」ということになります。 コメントを受けての追記 「ブラウザを閉じても任意の値を維持しておきたい」という目的があるのでしたら、今回やろうとしていることでは実現できません。 POSTはブラウザを閉じてしまうと値は維持しません。 維持するためには下記のいずれかで対応することになると思います。 * PHPを利用しDBに任意の値を保存する方法(これがベスト) * PHPを利用し任意のファイル(datなど)に保存しておく方法(ブラウザから参照できない場所にすること) * PHPを利用しセッションに保存する(しばらく経つと消えるのであまり推奨しない) * Webstorage(LocalStorage,SessionStorage)を利用する方法(javascriptのみで対応可能でPHP不要) いずれもロジックは同じです。 * 任意の値を保管しておき、アクセス時に取り出して表示する。 * 取り出した値と比較し、上回っていたら保管先の値を更新(上書き)する。 ※履歴を残したいというのであればまた別の仕組みとなりますが、まずは上書き上書き...から