dポイントプレゼントキャンペーン実施中!

はじめまして。
phpを少しだけコピペプログラミングしたことがある者です。
今mixiアプリに挑戦しているのですが、
JavaScriptは全く知らないので困っています。

http://oshiete1.goo.ne.jp/qa4374471.html
を見ましたがちょっと違うようです。

作りたいものはphpなら下記のようなものです。
http://www.pahoo.org/e-soul/webtech/php02/php02- …
(プログラムを実行するをクリックしてみてください)

最終的にやりたいことは、マイミクの一覧を表示する際、
各マイミクの横にチェックボックスを設け、
チェックを入れたマイミクのみを再表示するというものですが、
とりあえずは、JavaScriptで
チェックボックスのチェックを入れたものを再表示するやり方を教えてください。

A 回答 (6件)

あ~


・・・・。
エスパーにはなれそうにないね^^;

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"></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>
    • good
    • 0
この回答へのお礼

babu_babooさんありがとうございます。

items[0]=PHP
items[4]=JavaScript

の表示になりますが、動作を確認できました。
またmixiアプリ上でも同様に動きました!
ありがとうございました。

最終的にやりたいことは、マイミクの一覧を表示する際、
各マイミクの横にチェックボックスを設け、
チェックを入れたマイミクのみを再表示するというものなので、

PHPの事例のように、質問項目が配列変数
$questions = array('PHP', 'Ruby', 'Perl', 'Java',
'JavaScript', 'VisualBasic', 'VisualC++', 'VisualC#');
のように並びませんでしょうか。
可能であれば何卒よろしくお願いいたします。

お礼日時:2009/11/18 02:04

おやくにたてないようです。

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

ごめんなさいね~。


わたし、にほんご、わからなくなりました。
りかいふのうです。だれか、かみくだいておしえて~!

あなたが、あなたのなかで、りかいできていても
それを、たにんが、りかいできるとはかぎらない。
しかも、そのあいてが、あかちゃんれべるなら、なおさらです

そもそも、さいしょの、ごしつもんも・・・・

この回答への補足

全く自分勝手な意味不明の文章にもかかわらず
ご返答いただき誠に申し訳ございません。
不況に苦しむ町工場の人間が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'のところにコピーできればとも考えます。

すみません、もうすぐ昼休みが終わるためこれぐらいの説明になりますが、
もし可能であれば何卒よろしくお願いいたします。

補足日時:2009/11/18 12:49
    • good
    • 0

とりあえず、ご提示の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>
    • good
    • 0
この回答へのお礼

babu_babooさんありがとうございます。
動作も確認しました。
javascriptでも簡単に出来たのですね。

ただ、mixiアプリ上では動きませんでした。
選択して送信ボタンを押すと

400: Bad Request

と出てしまいます。
完全にお手上げです。

お礼日時:2009/11/18 00:41

//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>
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/11/17 11:46

ご提示の質問の回答の中で引用されている質問がまさにそのままでは?



サンプルも出てるみたいだし…
http://oshiete1.goo.ne.jp/qa4359235.html
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/11/17 11:47

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