アプリ版:「スタンプのみでお礼する」機能のリリースについて

セレクトボックスで選択した日付でカレンダーの検索を行いたいです。
起動したときは当日日付を表示させ、検索後は選択した日付をそのまま表示させておきたいのですがうまくいきません。
javascriptを使用するのではないかと思うのですが、初心者のため記述の仕方がよくわかりません。
どなたかご教授いただけるとうれしいです。よろしくおねがいします。

A 回答 (2件)

色々きちんとやるならクッキーをつかったり、サーバーで処理したりが


必要ですが、とりあえず動けばいいだけならたとえばこんな感じかな?

<script>
window.onload=function(){
var s=document.location.search.substr(1);
var d=new Date();
if(!s) s="y="+d.getFullYear()+"&m="+(d.getMonth()+1)+"&d="+d.getDate();
var arg=s.split("&");
for(var i=0;i<arg.length;i++){
setSelect(arg[i].match(/^([ymd])=(.*)/));
}
}
function setSelect(obj){
var tags=document.getElementsByTagName("select");
for(var i=0;i<tags.length;i++){
if(tags[i].name==obj[1]){
for(var j=0;j<tags[i].length;j++){
if(tags[i][j].value==obj[2]){
tags[i][j].selected=true;
break;
}
}
}
}
}
</script>
<form method="get">
<select name="y">
<option value="2008">2008</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
</select>
<select name="m">
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
<select name="d">
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
<input type="submit" value="go">
</form>
    • good
    • 0
この回答へのお礼

yambejpさん、回答ありがとうございます。

早速試してみたらやりたいことができたのですが、<option>の部分でforを使用してみるとうまくいきませんでした。
scriptの流れがよく理解できていないので、どのように修正したらいいのかわかりません。
教えていただけると幸いです。

<select>はこのようにしてみました。
<form method="get">
<?php
echo "<select size=\"1\" name=\"y\">";
$year = date ("Y");
for($cnt = 0; $cnt < 11; $cnt++){
$year2 = $year+$cnt-5;
echo "<option value=$year2>$year2</option>";
}
echo "</select>";
echo "年";
echo "<select size=\"1\" name=\"m\">";
for($cnt = 1; $cnt < 13; $cnt++){
echo "<option value=$cnt>$cnt</option>";
}
echo "</select>";
echo "月";
echo "<select size=\"1\" name=\"d\">";
for($cnt = 1; $cnt < 32; $cnt++){
echo "<option value=$cnt>$cnt</option>";
}
echo "</select>";
echo "日";
?>
<input type="submit" value="go">
</form>

お礼日時:2009/12/14 10:14

サーバーサイドのプログラムが動くなら話は別です。



<?php
$y= date ("Y");
if($_REQUEST["y"]) $y = $_REQUEST["y"];

$m= date ("m");
if($_REQUEST["m"]) $m = $_REQUEST["m"];
$d= date ("d");
if($_REQUEST["d"]) $d = $_REQUEST["d"];

for($i = $y-5; $i <= $y+5; $i++){
$selected=$y==$i?" selected":"";
$options["y"].="<option value=\"{$i}\"{$selected}>{$i}</option>\n";
}
for($i = 1; $i <= 12; $i++){
$selected=$m==$i?" selected":"";
$options["m"].="<option value=\"{$i}\"{$selected}>{$i}</option>\n";
}
for($i = 1; $i <= 31; $i++){
$selected=$d==$i?" selected":"";
$options["d"].="<option value=\"{$i}\"{$selected}>{$i}</option>\n";
}
print <<<eof
<form method="get">
<select size="1" name="y">
{$options["y"]}
</select>年
<select size="1" name="m">
{$options["m"]}
</select>月
<select size="1" name="d">
{$options["d"]}
</select>日
<input type="submit" value="go">
</form>
eof;
?>

さらに詳しい説明が必要ならPHPの板で質問ください。
    • good
    • 0
この回答へのお礼

yambejpさん
早速の回答ありがとうございます。今回教えていただいたソースで思うようにやりたいことができました。
javascriptを使用しなくても出来たのですね。。。

本当にありがとうございました!!

お礼日時:2009/12/14 14:48

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