プロが教える店舗&オフィスのセキュリティ対策術

よろしくお願いします。

javascriptの『onchange』値をPHPの変数に入れたいと苦戦しています。

<html>
<head>
<script type="text/javascript">
function hoge1(){
var x = $('str1').options[$('str1').selectedIndex].text;

やりたいことはここでPHPの変数『list_a』にjavascriptの変数『x』の値を入れたいです。

}
</script>
</head>
<body>
ここに結果表示
<?= $list_a; ?>
<select id="str1" name="str1" onchange="hoge1()">
<option>hoge1</option>
<option>hoge2</option>
<option>hoge3</option>
</select>
</body>
</html>

よろしくお願いいたします。
ちなみにAjaxは全くわかりませんのですいません。。。

A 回答 (3件)

できません。


サーバ上で動くPHPとクライアント上で動くJavascriptは同時に動作しません。

サーバとクライアントという関係を無視して簡単に言えば、
PHPの処理はページを表示した時点で、すでに終了してるので、
ページ表示後に動作するjavascriptが動作している段階では、
PHPは処理を行わないのです。

No.1の方が言うようにフォームやURLオプションで
ページを遷移して読み込みなおして、
そこでPHPで$_REQUEST[]変数かなにかで取ってください。

具体的に何がやりたいのか分からないので、
直接的な解決策は示せませんが、
もしページを読み込みなおしたくないのであれば、
サブウインドウを開くなりしてそこに処理を渡してください。

この回答への補足

ありがとうございます。
根本的に私の考えが間違っていたようです。。。

登録フォームなどのなかの一部として考えていましたので、リロードはまずいので別の方法を検討したいと思います。

その時はよろしくお願いします。

補足日時:2012/06/21 13:06
    • good
    • 0

JAVASCRIPTだけで可能です




function hoge1(){
 var x = $('str1').options[$('str1').selectedIndex].text;
 var obj1=document.getElementById('list_a');
 obj1.innerHTML = x;
}


<div id="list_a"></div>

この回答への補足

ありがとうございます。

説明不足で本当に申し訳ございません。

表示が最終の目的ではなくてその先データベースとの連携をphpで行いたいと思っておりました。

補足日時:2012/06/21 13:03
    • good
    • 0

>PHPの変数『list_a』にjavascriptの変数『x』の値を入れたいです。



ごめんなさい、意味がわからない
仮にlist_aにxを入れたらどうなるの?
すでに出力されたHTMLなんだから変数に代入するというロジック自体存在しない
と思うんですが・・・

単純に自分自身にGETなりPOSTしてやれば、すっきりするかもしれないけど

この回答への補足

ありがとうございます。

>単純に自分自身にGETなりPOSTしてやれば、すっきりするかもしれないけど

おっしゃるとおりです。

この後にmysqlに接続しwhereに使用したいと考えておりました。

説明不足ですいません。

補足日時:2012/06/21 13:01
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!