Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー

チェックボックスのチェックを入れたものを再表示する

はじめまして。 phpを少しだけコピペプログラミングしたことがある者です。 今mixiアプリに挑戦しているのですが、 JavaScriptは全く知らないので困っています。 http://oshiete1.goo.ne.jp/qa4374471.html を見ましたがちょっと違うようです。 作りたいものはphpなら下記のようなものです。 http://www.pahoo.org/e-soul/webtech/php02/php02-20-01.shtm (プログラムを実行するをクリックしてみてください) 最終的にやりたいことは、マイミクの一覧を表示する際、 各マイミクの横にチェックボックスを設け、 チェックを入れたマイミクのみを再表示するというものですが、 とりあえずは、JavaScriptで チェックボックスのチェックを入れたものを再表示するやり方を教えてください。

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

  • ベストアンサー
回答No.4

あ~ ・・・・。 エスパーにはなれそうにないね^^; test1.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Script-Type" content="application/javascript"> <title>test1.html</title> <body> <form method="get" action="test2.html"> <p><input type="checkbox" name="items[0]" value="PHP">PHP <p><input type="checkbox" name="items[1]" value="Ruby">Ruby <p><input type="checkbox" name="items[2]" value="Perl">Perl <p><input type="checkbox" name="items[3]" value="Java">Java <p><input type="checkbox" name="items[4]" value="JavaScript">JavaScript <p><input type="checkbox" name="items[5]" value="VisualBasic">VisualBasic <p><input type="checkbox" name="items[6]" value="VisualC++">VisualC++ <p><input type="checkbox" name="items[7]" value="VisualC#">VisualC# <p><input type="submit" value="送信"> </form> </form> </body> </html> test2.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Script-Type" content="application/javascript"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>test2.html</title> </head> <body> <div id="p">&nbsp;</div> <script type="text/javascript"><!-- function getLocation () {  var par = location.search.substring(1).split( '&' );  var cnt = 0, pac, nv, ret = { };  while( pac = par[ cnt++ ] ) {   nv = pac.split( '=' );   ret[ decodeURIComponent( nv[0] ) ] = decodeURIComponent( nv[1] );  }  return ret; } var key, txt = '', o, p = getLocation(); for( key in p )  txt += key + '=' + p[ key ] + '<br>'; document.getElementById( 'p' ).innerHTML = txt; //--> </script> </body> </html>

Scipio93
質問者

お礼

babu_babooさんありがとうございます。 items[0]=PHP items[4]=JavaScript の表示になりますが、動作を確認できました。 またmixiアプリ上でも同様に動きました! ありがとうございました。 最終的にやりたいことは、マイミクの一覧を表示する際、 各マイミクの横にチェックボックスを設け、 チェックを入れたマイミクのみを再表示するというものなので、 PHPの事例のように、質問項目が配列変数 $questions = array('PHP', 'Ruby', 'Perl', 'Java', 'JavaScript', 'VisualBasic', 'VisualC++', 'VisualC#'); のように並びませんでしょうか。 可能であれば何卒よろしくお願いいたします。

すると、全ての回答が全文表示されます。

その他の回答 (5)

回答No.6

おやくにたてないようです。ごめんなさい。 あどれすのうしろのぶぶん http://ww/aa.aa.jp/index.hrml?「ここのぶぶん」← に、まえのぺーじのでーたをくっつけているので、 もじすうにせいげんがあり、すうひゃくのでーたは、むりっぽい とかんがえます。なので、PHPとかの、いたに、そうだんしたほうが よいのかも。

すると、全ての回答が全文表示されます。
回答No.5

ごめんなさいね~。 わたし、にほんご、わからなくなりました。 りかいふのうです。だれか、かみくだいておしえて~! あなたが、あなたのなかで、りかいできていても それを、たにんが、りかいできるとはかぎらない。 しかも、そのあいてが、あかちゃんれべるなら、なおさらです そもそも、さいしょの、ごしつもんも・・・・

Scipio93
質問者

補足

全く自分勝手な意味不明の文章にもかかわらず ご返答いただき誠に申し訳ございません。 不況に苦しむ町工場の人間がmixiアプリにビジネス性を感じ、 やったこともないプログラミングに挑んでいる次第ですので、 何卒お許しください。 以前業務で使うとても簡単なWEBプログラムを、 PHPのサンプルコードからコピーして作った経験があり 今回もそのくらいのつもりでした。 しかし、opensocialの本はまだ一冊しかなく、 サンプルコードのサイトもほとんどなく、 JavaScriptもXMLもさっぱりわからないため困っております。 最終的にやりたいことは、マイミクの一覧を表示する際、 各マイミクの横にチェックボックスを設け、 チェックを入れたマイミクのみを再表示するというものです。 (そのあとそれを使い簡単なゲームのようなものをやります) したがって、今回は 'PHP', 'Ruby', 'Perl', 'Java', 'JavaScript', 'VisualBasic', 'VisualC++', 'VisualC#' の固定した8つにチェックボックスが入りましたが、実際は 'PHP', 'Ruby'のところがマイミクの名前に変わる点と、 人によりマイミクが数人の人もいれば、何十人、何百人(最大千人) の人もいる点とを、これからやらなければなりません。 マイミクの一覧を表示するプログラムの一例は下記のようなものです。 (これで動くという以外、内容は私にはさっぱりわかりません) gadgets.util.registerOnLoadHandler(init); function init() { loadFriends(); } function loadFriends() { var req = opensocial.newDataRequest(); req.add(req.newFetchPersonRequest(opensocial.IdSpec.PersonId.VIEWER), 'viewer'); var viewerFriends = opensocial.newIdSpec({ "userId" : "VIEWER", "groupId" : "FRIENDS" }); var opt_params = {}; opt_params[opensocial.DataRequest.PeopleRequestFields.MAX] = 100; req.add(req.newFetchPeopleRequest(viewerFriends, opt_params), 'viewerFriends'); req.send(onLoadFriends); } function onLoadFriends(data) { var viewer = data.get('viewer').getData(); var viewerFriends = data.get('viewerFriends').getData(); html = new Array(); html.push('<ol>'); viewerFriends.each(function(person) { if (person.getId()) { html.push('<li>' + person.getDisplayName() + "</li>"); } }); html.push('</ul>'); document.getElementById('friends').innerHTML = html.join(''); } function soshin(){ document.toroku.submit(); } <div id="friends"></div> 前半で得た最大100人のマイミク情報を 後半でArrayを使って表示しているようなので、 サンプルのPHPプログラムのように array('PHP', 'Ruby', 'Perl', 'Java', 'JavaScript', 'VisualBasic', 'VisualC++', 'VisualC#'); のように要素が並んでいれば、 応用ができるのではと考えた次第です。 しかしマイミクの名前を一人ひとり取り出し、 <p><input type="checkbox" name="items[0]" value="PHP">PHP <p><input type="checkbox" name="items[1]" value="Ruby">Ruby <p><input type="checkbox" name="items[2]" value="Perl">Perl の'PHP', 'Ruby', 'Perl'のところにコピーできればとも考えます。 すみません、もうすぐ昼休みが終わるためこれぐらいの説明になりますが、 もし可能であれば何卒よろしくお願いいたします。

すると、全ての回答が全文表示されます。
  • ryu_chan
  • ベストアンサー率37% (69/186)
回答No.3

とりあえず、ご提示のPHPスクリプトと同じ動作のものを作ってみました。 <script> window.onload = function() { var values = []; var query = location.search.substr(1).split("&"); for ( var i in query ) { if ( query[i].match(/.+=(.+)/) ) { values.push( unescape(RegExp.$1) ); } } if ( values.length ) { document.getElementById("input").style.display = "none"; var result = document.getElementById("result"); var url = location.href.split("?")[0]; result.innerHTML = "<p>■選択された言語</b></p>" + values.join("<br>") + '<p><a href="' + url + '">戻る</a></p>'; } } </script> <form> <p id="input"> <input type="checkbox" name="item0" value="PHP">PHP<br> <input type="checkbox" name="item1" value="Ruby">Ruby<br> <input type="checkbox" name="item2" value="Perl">Perl<br> <input type="checkbox" name="item3" value="Java">Java<br> <input type="checkbox" name="item4" value="JavaScript">JavaScript<br> <input type="checkbox" name="item5" value="VisualBasic">VisualBasic<br> <input type="checkbox" name="item6" value="VisualC++">VisualC++<br> <input type="checkbox" name="item7" value="VisualC#">VisualC#<br> <input type="submit" value="送信"> </p> </form> <div id="result"> </div>

Scipio93
質問者

お礼

babu_babooさんありがとうございます。 動作も確認しました。 javascriptでも簡単に出来たのですね。 ただ、mixiアプリ上では動きませんでした。 選択して送信ボタンを押すと 400: Bad Request と出てしまいます。 完全にお手上げです。

すると、全ての回答が全文表示されます。
回答No.2

//26歳、専業主婦の人妻です。^^; いろいろないみで、いみのないような、ながさになってしまいました。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <title>test</title> <body> <form action="#"> <p> <input type="checkbox" name="abc"> <input type="checkbox" name="abc"> <input type="checkbox" name="abc"> <input type="checkbox" name="abc"> <input type="checkbox" name="abc"> <input type="checkbox" name="abc"> </p> </form> <script type="text/javascript"> var Collector = function ( tag, key, val ) {  var t = document.getElementsByTagName( tag );  var cnt = 0;  var buf = [];  var obj;    while( obj = t[ cnt++ ] )   if( obj[ key ] && obj[ key ] == val )    buf.push( obj );  return buf; }; var Manager = function ( ary, setFunc ) {  return function ( ) {   var cnt = 0;   var arg;   var parm;      while( parm = arguments[ cnt++ ] )    ary[ parm[0] ] && setFunc.call( ary[ parm[0] ], parm[1] );  }; }; var Setter = function ( sw ) {  this.checked = sw ? true: false; }; var checkbox = Manager( Collector( 'INPUT', 'type', 'checkbox' ), Setter ); //checkboxの 0,1,4番目をonにして、2,3番目をoffにする checkbox( [0, 1 ], [1,true], [4, 'on'], [2, false],[3,0] ); </script>

Scipio93
質問者

お礼

babu_babooさん、ありがとうございます。 JavaScriptでも可能だということがわかり希望が持てました。 ただ何分全くわかっていないもので、 ボタンを押したら画面が変わるところまでお教えいただけると助かります。 よろしくお願いいたします。

すると、全ての回答が全文表示されます。
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

ご提示の質問の回答の中で引用されている質問がまさにそのままでは? サンプルも出てるみたいだし… http://oshiete1.goo.ne.jp/qa4359235.html

Scipio93
質問者

お礼

fujillinさん、ありがとうございます。 JavaScriptでも可能だということがわかり希望が持てました。 ただ何分全くわかっていないもので、 ボタンを押したら画面が変わるところまでお教えいただけると助かります。 よろしくお願いいたします。

すると、全ての回答が全文表示されます。

関連するQ&A