みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

javascriptでphpに値渡し

javascriptとphpで値のやりとりをしたいのですが、やりかたがわかりません。
以下のプログラムはセレクトメニューで選択された文字によって'a','ka','sa'....と
自作関数のSelected()に値を渡しています。
"alert(value);"をSelected()関数内に書いて、引数が正しく渡され実行できることは確認しました。

そこで、今度はSelected()関数に渡された引数valueをphpファイルに送って、
php側で引数に応じた処理をさせたいのですが、
Selected()関数内にどのように書けば良いのかがわかりません。
ちなみに渡したいphpのファイル名は"connect_mysql.php"で、
以下のプログラムが書かれたファイルと同階層にあります。


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html lang="ja">
<meta http-equiv="content-type" content="text/html; charset=UTF-8" >
<meta http-equiv="Content-Script-Type" content="text/javascript">
<head>
<title>test page</title>
</head>

<script type="text/javascript">
function Selected(value){
//ここで引数valueをphp側に渡したい
// "alert(value);"を書いてSelected()関数が正しく呼び出され実行されることを確認済み
}
</script>

<body>
<form>
<div id="name_selectors" class="name_select flo_l">
<select id="aiueo" class="aiueo_list flo_l" size="5" onchange="Selected(this[this.selectedIndex].value)">
<!--↓五十音一覧-->
<option id="a" value="a" class="category_aiueo" >
あ行 </option>
<option id="ka" value="ka" class="category_aiueo" >
か行 </option>
<option id="sa" value="sa" class="category_aiueo" >
さ行 </option>
            ・
            ・
            ・
<option id="ra" value="ra" class="category_aiueo" >
ら、わ行 </option>
</select>
<!--↑五十音 end-->
</div>
</form>
  </body>
</html>

投稿日時 - 2011-03-14 02:30:48

QNo.6591555

すぐに回答ほしいです

質問者が選んだベストアンサー

簡単なのは、<form>を送信(.submit())して下さい。

または、
簡単ではありませんが、資料が多く一般化(標準化)している方法として、Ajaxを使用して下さい。

投稿日時 - 2011-03-14 03:54:57

補足

ご回答ありがとうございます。
<form>をsubmit()した場合のphpファイル側での受け取り方がわからないので、
もしよろしければ、それについても教えていただけると助かります。

投稿日時 - 2011-03-15 22:07:03

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

フォーム内容を送信した場合には、PHP側では、$_GET,$_POSTで値を受け取ることが出来ます。
例:
///index.html///
<form action='./test.php' method='GET'>
<input type='text' name='id'>
<input type='password' name='pass'>
</form>

///test.php///
<?php
if($_SERVER['REQUEST_METHOD']=='GET'){
foreach($_GET as $key => $value){
$in[$key]=$value;
}
}
else{
foreach($_GET as $key => $value){
$in[$key]=$value;
}
}
echo 'id:',$in['id'],' pass:',$in['pass'];
?>


注意点として、私はPHPはあまり詳しくないので、文法などが間違っているかもしれません。
その場合には、修正して下さい。

投稿日時 - 2011-03-16 00:10:51

お礼

ご回答ありがとうございます。
無事解決することができました。

投稿日時 - 2011-03-17 09:47:34

ANo.3

もし、jQueryが使用できる環境ならば
簡単に実装できます。

$.post( url, data, callback, type )
という形式です。

hoge.phpに[data1="a" , data2="ka"]というデータを送る場合のサンプルです。
$.post("hoge.php",
{
"data1":"a",
"data2":"ka"
},function(data,status){
//コールバック関数
});

GETの場合は$.postを$.getに書き換えてください。


以下のページ等も参考にしてみてください。
http://stacktrace.jp/jquery/api/ajax/jquery.post.html

投稿日時 - 2011-03-14 05:59:23

お礼

回答いただきありがとうございます。
jQueryというのがあるんですね。 調べてみます。

投稿日時 - 2011-03-15 21:57:49

ANo.1

Ajaxを使います。
function SendRequest(data,method,fileName,callback,async){
var HttpObject=createHttpRequest();
HttpObject.open(method,fileName,async);
HttpObject.setRequestHeader('If-Modified-Since','Thu, 01 Jun 1970 00:00:00 GMT');
HttpObject.onreadystatechange=function(){
if(HttpObject.readyState==4){
if(HttpObject.status==200){
if(typeof callback=='function'){
callback.call(HttpObject,HttpObject);
}
}
else{
if(typeof callback=='function'){
callback.call('false','false');
}
}
}
};
HttpObject.send(data);
}
SendRequest('送るデータ(a=b&c=d の形式)','POST(GET)','phpファイル(?a=b&c=d も可)',function(){
//送信完了時に何かしたい場合
}, 基本的に、省略可。非同期通信にするかどうかのフラグで、省略するとtrue 同期通信なら、false。同期通信の場合には、通信中は何もできない );

です。

投稿日時 - 2011-03-14 03:54:01

お礼

回答いただきありがとうございます。
Ajaxの勉強はしていないので、少し勉強してみます。

投稿日時 - 2011-03-15 21:59:03

あなたにオススメの質問