降順ソートができません。

このQ&Aのポイント
  • テキストボックスを画面左側に10個作成し、画面右側に10個作成します。そして、入力された数値データを降順にソートして表示するプログラムです。
  • テキストボックスの数値データを降順にソートするために、PHPのrsort関数を使用します。
  • rsort関数を使用する前に、配列に数値データを格納し、rsort関数を実行することで降順にソートされたデータを表示します。
回答を見る
  • ベストアンサー

降順ソートができません。

テキストボックスを画面左側に10個作成します。 テキストボックスを画面右側に10個作成し、 降順ソートボタンを作成します。 左側10個に入力された数値データを降順ソートして 右側の10個のテキストボックスに表示してください。 <?php //配列 $naNumber[0] = $_POST[naNumber0]; $naNumber[1] = $_POST[naNumber1]; $naNumber[2] = $_POST[naNumber2]; $naNumber[3] = $_POST[naNumber3]; $naNumber[4] = $_POST[naNumber4]; $naNumber[5] = $_POST[naNumber5]; $naNumber[6] = $_POST[naNumber6]; $naNumber[7] = $_POST[naNumber7]; $naNumber[8] = $_POST[naNumber8]; $naNumber[9] = $_POST[naNumber9]; //読込 echo ("<form name = naNumberList method = POST action = ./php05.php>"); echo ("<table boder = 1><tr><td>"); //入力用テキストボックスの作成 //テキストボックス名・形式(右寄せ)・配列 echo ("<input type = text name = naNumber0 style = text-align:right; value = $naNumber[0]><br> <input type = text name = naNumber1 style = text-align:right; value = $naNumber[1]><br> <input type = text name = naNumber2 style = text-align:right; value = $naNumber[2]><br> <input type = text name = naNumber3 style = text-align:right; value = $naNumber[3]><br> <input type = text name = naNumber4 style = text-align:right; value = $naNumber[4]><br> <input type = text name = naNumber5 style = text-align:right; value = $naNumber[5]><br> <input type = text name = naNumber6 style = text-align:right; value = $naNumber[6]><br> <input type = text name = naNumber7 style = text-align:right; value = $naNumber[7]><br> <input type = text name = naNumber8 style = text-align:right; value = $naNumber[8]><br> <input type = text name = naNumber9 style = text-align:right; value = $naNumber[9]> </td>"); //降順にソート rsort($naNumber); //降順ソート表示用テキストボックス //テキストボックス名・形式(右寄せ)・読込専用・配列 echo ("<td><input type = text name = naNumber0 style = text-align:right; readonly value = $naNumber[0]><br> <input type = text name = naNumber1 style = text-align:right; readonly value = $naNumber[1]><br> <input type = text name = naNumber2 style = text-align:right; readonly value = $naNumber[2]><br> <input type = text name = naNumber3 style = text-align:right; readonly value = $naNumber[3]><br> <input type = text name = naNumber4 style = text-align:right; readonly value = $naNumber[4]><br> <input type = text name = naNumber5 style = text-align:right; readonly value = $naNumber[5]><br> <input type = text name = naNumber6 style = text-align:right; readonly value = $naNumber[6]><br> <input type = text name = naNumber7 style = text-align:right; readonly value = $naNumber[7]><br> <input type = text name = naNumber8 style = text-align:right; readonly value = $naNumber[8]><br> <input type = text name = naNumber9 style = text-align:right; readonly value = $naNumber[9]> </td></tr>"); //降順ソートボタン作成 echo ("<tr><td colspan = 3 align = left> <input type = button value = '降順ソート'> </td></tr> </table> </form>"); ?> 上記のソースで、テキストボックス表示・降順ソートボタン表示までできました。 しかし、降順ソートができません。。 降順ソートの書き方をいろいろ変えてみたのですが。 どなたかご存知であれば教えてください!お願いいたします。

  • PHP
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

まぁいろいろ問題ですが・・・ とりあえず (1)サブミットしないことにはphpにデータがわたりません <input type = button value = '降順ソート'> を以下に <input type = submit value = '降順ソート'> (2)サブミットする際に、名前が競合しています。 ソート後のテキストボックスの名前を変更してください

hamu0628
質問者

お礼

yambejpさんの方法でできました! 本当にありがとうございます。

その他の回答 (1)

回答No.2

宿題じゃないならJavaScript使ったほうが早いかも。

hamu0628
質問者

お礼

ありがとうございます。 PHPで作成が課題でした。。 なんとかできあがりました!

関連するQ&A

  • INPUT TYPE

    入力不可(表示のみ)にしたいのですが、 ラベルというtypeはないのですか? とりあえず、text value にして、readonlyにしたのですが、 <input type='text value' readonly name='NAME' value=<%=NAME3%>> フォーカスがあたってしまいます。 テキストボックスの背景色を変える方法を教えてください。 または、ラベルという概念があるならば、教えてください。

    • ベストアンサー
    • HTML
  • Javaで計算結果によって文字色を変えたい

    下記のような計算プログラムを検討しています。 全くの素人なので、ネットで参考になるものを探して、やっとここまで出来ました。 計算結果の値によって文字色を変えたいのですが上手くいきません。 例えば、数値が100以上であれば青、200以上であれば、赤・・・というように設定したいのですが、どのように記述すれば良いでしょうか。 よろしくお願い致します。 <HTML> <HEAD> <TITLE>計算</TITLE> </HEAD> <BODY> <SCRIPT language="JavaScript"> <!-- function keisan1(x1,x2){ a=0.2*(eval(x1)/10)*(eval(x1)/10)*Math.sqrt(eval(x2))*1000; return a.toFixed(0);} function keisan2(x1,x2,x3,x4,s1){ b=eval(x2)+Math.pow((0.2*(eval(x1)/10)*(eval(x1)/10)*Math.sqrt(eval(x2))),2)*eval(document.getElementById('s1').value)*eval(x3)+0.01*eval(x4); return b.toFixed(2);} function keisan3(x1,x2){ c=200*Math.pow((eval(x1)/10),2)*(eval(x2)); return c.toFixed(0);} //--> </SCRIPT> <H3>TEST</H3> <FORM name="fk">※ 条件を入力して下さい <BR> <BR> 条件(1)<SELECT name="s1" id="s1" onchange="b();"> <OPTION value="0.2">A</OPTION> <OPTION value="0.9">B</OPTION> </SELECT> <BR> 条件(2)<INPUT size="10" type="text" name="d1" style="text-align:right"><BR> 条件(3)<INPUT size="10" type="text" name="d2" style="text-align:right"><BR> 条件(4)<INPUT size="10" type="text" name="d3" style="text-align:right"><BR> 条件(5)<INPUT size="10" type="text" name="d4" style="text-align:right"><BR> <BR> <INPUT type="button" value="計算開始" onclick="document.fk.calc1.value=keisan1(document.fk.d1.value,document.fk.d2.value);document.fk.calc2.value=keisan2(document.fk.d1.value,document.fk.d2.value,document.fk.d3.value,document.fk.d4.value,document.fk.s1.value);document.fk.calc3.value=keisan3(document.fk.d1.value,document.fk.d2.value);"> <BR> 回答(1)<INPUT size="10" type="text" name="calc1" style="text-align:right"> <BR> 回答(2)<INPUT size="10" type="text" name="calc2" style="text-align:right"> <BR> 回答(3)<INPUT size="10" type="text" name="calc3" style="text-align:right"> </FORM> </BODY> </HTML>

  • テキストボックスを横並びで表示

    テキストボックスを2つ作り横並びに表示したいのですがどうしても縦ならびに表示されてしまいます。 display:inlineをCSSで入れても変化がありません。 <input style="display: inline;" type="text" name="post_1" value="<?=$_SESSION["post_1"]?>">-<input style="display: inline;" type="text" name="post_2" value="?=$_SESSION["post_2"]?>"> 他に関係する要素はあるのでしょうか?

    • ベストアンサー
    • HTML
  • 特定のデータだけををソートしたい

    POSTで渡されたデータの中から特定のデータだけを取り出しソートしたい。 例えばNo・名前・年齢のtextを数個表示してNoだけを抽出し、ソートして昇順にしたいのですが? print '<form name="form1" action="eee.php" method="POST">' . "\r\n"; for($i=0;$i<5;$i++){ print '<input type="text" name="N0'.$i.'">' . "\r\n"; print '<input type="text" name="Name'.$i.'">' . "\r\n"; print '<input type="text" name="Age'.$i.'">' . "\r\n"; } print '<input type="submit" value="送信">' . "\r\n"; print '</form>' . "\r\n";

    • 締切済み
    • PHP
  • javascriptのtextbox

    こんばんは。 <html> <body> <center> <br><br> <form name="fuji"> TEXT BOX<br> <input type="text" name="tex"> </form> <SCRIPT type="text/javascript"> var i; i="ABC" document.write("<input type='button' value='↑を変数iに代入' onClick='i=(document.fuji.tex);'>"); document.write("<br><input type='button' value='表示' onClick='document.write(i);'>"); </SCRIPT> </center> </body> </html> でテキストボックスの中身を表示させたいのですが、 上手くいきません。どうすればいいのでしょうか。 また、変数を使わずに直接テキストボックスの中身を 表示させる事はできるのでしょうか。 教えてください。

  • メールフォームについて

    この中にどのようなHTMLを書けば自分のPCにメールが届く ようになりますか?よろしくお願いします。 <h2>■MAIL FORM</h2> <div class="text"> <form><table><tr><td width="100" align=right> NAME</td><td align=right><input type="text" name="Name" size="34"></td></tr><tr><td width="100" align=right> MAIL</td><td align=right><input type="text" name="Mail" size="34"></td></tr></table> <TEXTAREA NAME="Comments" ROWS="8" COLS="39" value="comments"></TEXTAREA> <br> <table><tr><td width="100" align=right> </td> </tr><tr> <td width="100" align=right> URL</td><td><input type="text" name="URL" value="http://" size="34"></td></tr><tr><td></td><td align="right"> <INPUT TYPE="reset" VALUE=" Reset "> <INPUT TYPE="submit" VALUE=" Send "></FORM> </td></tr></table><br></div>

    • ベストアンサー
    • HTML
  • Java 計算結果の表示ボックスの書式を変えたい

    計算結果が表示されるボックスの表示(回答(1)(2)(3)のみ)を下記のようなバリエーションで変えたいのですが、どのように記述すれば良いでしょうか。 (1)枠線の色を変えたい (2)枠線の太さを変えたい (3)枠線内(ボックス)を一定の時間で、任意の色で点滅させたい(現在は条件をつけて枠内の色が変わるように記述しています) よろしくお願い致します。 <HTML xmlns="http://www.w3.org/1999/xhtml" lang="ja"> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <TITLE>計算テスト</TITLE> </HEAD> <BODY bgcolor="#FFFFCC"> <FONT SIZE="3"> <SCRIPT language="JavaScript"> <!-- function keisan1(x1,x2){ a=0.2*(eval(x1)/10)*(eval(x1)/10)*Math.sqrt(eval(x2))*1000; return a.toFixed(0);} function keisan2(x1,x2,x3,x4,s1){ b=eval(x2)+Math.pow((0.2*(eval(x1)/10)*(eval(x1)/10)*Math.sqrt(eval(x2))),2)*eval(document.getElementById('s1').value)*eval(x3)+0.1*eval(x4); return b.toFixed(2);} function keisan3(x1,x2){ c=20*(eval(x1)/10)*(eval(x1)/10)*(eval(x2)); return c.toFixed(0);} function calc(){ // ← 計算ボタンが押されたらこの関数が呼ばれる   var d1 = document.fk.d1;   var d2 = document.fk.d2;   var d3 = document.fk.d3;   var d4 = document.fk.d4;   var s1 = document.fk.s1;   var ans1 = keisan1(d1.value, d2.value);   var calc1 = document.fk.calc1;   calc1.value = ans1;   var ans2 = keisan2(d1.value, d2.value, d3.value, d4.value, s1.value);   var calc2 = document.fk.calc2;   calc2 .value = ans2 ;   if(ans2 >= 0) calc2.style.color = "#e60000";   if(ans2 >= 0) calc2.style.backgroundColor = "#ffffff";   if(ans2 >= 1.4) calc2.style.color = "#ffffff";   if(ans2 >= 1.4) calc2.style.backgroundColor = "#e60000";   var ans3 = keisan3(d1.value, d2.value);   var calc3 = document.fk.calc3;   calc3.value = ans3;   if(ans3 <180) calc3.style.backgroundColor = "#D5FFCB";   if(ans3 >=180) calc3.style.backgroundColor = "#FFCC99";   if(ans3 >=270) calc3.style.backgroundColor = "#FF9999"; } //--> </SCRIPT> <FONT SIZE="5"><B>計算</B></font><BR> <FORM name="fk"> <FONT SIZE="3">   ●条件(1):<INPUT size="7" type="text" name="d1" style="text-align:right"><BR>   ●条件(2):<INPUT size="7" type="text" name="d2" style="text-align:right"><BR>   ●条件(3):<SELECT name="s1" id="s1" onchange="b();"> <OPTION value="0.1">A</OPTION> <OPTION value="0.2">B</OPTION> </SELECT> <BR>   ●条件(4):<INPUT size="7" type="text" name="d3" style="text-align:right"><BR>   ●条件(5):<INPUT size="7" type="text" name="d4" style="text-align:right"><BR> <BR>   <INPUT type="button" value="計算開始" onclick="calc()"> <BR> <BR>   ◆回答(1):<INPUT size="7" type="text" name="calc1" style="text-align:right"><BR>   ◆回答(2):<INPUT size="7" type="text" name="calc2" style="text-align:right"><BR>   ◆回答(3):<INPUT size="7" type="text" name="calc3" style="text-align:right"><BR> <BR> </FONT> </FORM> </BODY> </HTML>

  • 子画面から親画面に値を返す方法

    親画面で入力した内容をPOST後 子画面に表示して(表示のみ、モーダル状態)内容を確認して ボタンで【OK】か【キャンセル】を押下して親画面に何が押下されたか 戻したいです。 私なりに考えて見ましたが、子画面からの戻し方がよく わかりません。 よろしくお願いします。 親画面 【oya.php】 <? session_start(); if($_POST["CHK"]){ $_SESSION["item1"] = $_POST["item1"]; $_SESSION["item2"] = $_POST["item2"]; returnValue = showModalDialog("ko.php"); //子画面の戻り値が【OK】のときDBに登録処理をする //【OK】でないときはそのまま } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <form action="oya.php" method="post"> <table width="70%" align = "center" cellspacing="0"> <tr> <td align="right">入力項目1</td> <td><input type="text" name="item1" size="10" maxlength="10" value = "<? echo $item1 ?>"></td> </tr> <tr> <td align="right">入力項目2</td> <td><input type="text" name="item2" size="10" maxlength="10" value = "<? echo $item2 ?>"></td> </tr> <tr> <td> <input type="submit" name="CHK" value="確認"> </td> </tr> </table> </form> </body> </html> 子画面 【ko.php】 <? session_start(); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>確認画面</title> <link rel="stylesheet" href="./css/style.css" type="text/css" /> </head> <body> 確認後「OK」OR「キャンセル」を押して下さい。 <table width="70%" align = "center" cellspacing="0"> <tr> <td align="right">入力項目1</td> <td><input type="text" name="item1" size="10" maxlength="10" value = "<? echo $_SESSION["item1"] ?>" readonly="readonly"></td> </tr> <tr> <td align="right">入力項目2</td> <td><input type="text" name="item2" size="10" maxlength="10" value = "<? echo $_SESSION["item2"] ?>" readonly="readonly"></td> </tr> </table> </body> </html>

    • ベストアンサー
    • PHP
  • 現在のカーソル行を知りたい。

    'KeyDown'の下記サンプルコードでfunction msgにきたときに 何番目のテキストボックスでKYyDownされたか知りたいのですが、 関数があればお教え下さい。 <html> <head> <script type="text/Javascript"> <!-- function msg(str) { alert("check"); } //--> </script> </head> <body onKeyDown="msg('KeyDown')"> key<br> <form name="myForm" method="POST" target="_self"> <input type="text" name="text1><BR> <input type="text" name="text1"><BR> <input type="text" name="text1"><br> <input type="submit" name="button1" value="button"> </form> </body> </html>

  • 一部スクロール表示が含まれる画面を印刷する方法

    ホームページ画面の一部に縦スクロールの設定をしております。 画面上に印刷ボタンを作成し、プリントアウトしたいと考えておりますが、ファイル→印刷と押すと表示された部分のみしか印刷されません。 どなたかご存じでしたらご教示願います。 【HTML】 <div style="top : 161px;left : 8px; position : absolute; z-index : 4; width : 847px; height : 252px; " id="Layer5"> <div style="background: white; padding: 10px; margin-bottom: 10px; border: 1px solid #333333;" class="test"> <table border="1" height="252" width="818"> <tr bgcolor="gray" style="color:white" height="50"> <th height="42" size=10><b>注文日</b></th> <th height="42" width="212">品物・オプション<br>注文先・単価</th> <th height="42" size=10>金額/個数</th> <th height="42" size=20><b>発注者/入力者</b></th> </tr> <% for(var i in content) { %> <tr bgcolor="lightyellow" > <% var obj = content[i]; %> <td align="center" height="47" size="10"> <input type="text" name=注文日 size="10" style="background:white; color:#000000;" align="middle" value="注文日" disabled="disabled"> </td> <td align="center" height="47" width="10" style="white-space:nowrap;" > <input type="text" name=品物 size=4 style="background:white; color:#000000;" align="middle" value="<%= obj.品物 %>" disabled="disabled"> <input type="text" name=option size=1 style="background:white; color:#000000;" align="middle" value="" disabled="disabled"> <input type="text" name=品物2 size=4 style="background:white; color:#000000;" align="middle" value="<%= obj.品物2 %>" disabled="disabled"> <input type="text" name=option2 size=1 style="background:white; color:#000000;" align="middle" value="" disabled="disabled"> <input type="text" name=品物3 size=4 style="background:white; color:#000000;" align="middle" value="<%= obj.品物3 %>" disabled="disabled"> <input type="text" name=option3 size=1 style="background:white; color:#000000;" align="middle" value="" disabled="disabled"><br> <input type="text" name=tyumonsaki size=4 style="background:white; color:#000000;" align="middle" value="<%= obj.order_destination %>" disabled="disabled"> <input type="text" name=単価 size=1 style="background:white; color:#000000; text-align: right;" align="middle" value="<%= obj.単価 %>" disabled="disabled"> <input type="text" name=tyumonsaki2 size=4 style="background:white; color:#000000;" align="middle" value="<%= obj.order_destination2 %>" disabled="disabled"> <input type="text" name=単価2 size=1 style="background:white; color:#000000; text-align: right;" align="middle" value="<%= obj.単価2 %>" disabled="disabled"> <input type="text" name=tyumonsaki3 size=4 style="background:white; color:#000000;" align="middle" value="<%= obj.order_destination3 %>" disabled="disabled"> <input type="text" name=単価3 size=1 style="background:white; color:#000000; text-align: right;" align="middle" value="<%= obj.単価3 %>" disabled="disabled"> </td> <td align="center" height="47" size=10> <input type="text" name=合計金額 size=10 style="background:white; color:#000000; text-align: right;" align="middle" value="<%= obj.合計金額 %>" disabled="disabled"> <input type="text" name=合計数 size=10 style="background:white; color:#000000; text-align: right;" align="middle" value="<%= obj.合計数 %>" disabled="disabled"> </td> <td align="center" height="47" size=20> <input type="text" disabled="disabled" name=発注者 size=20 style="background:white; color:#000000;" align="middle" value="<%= obj.発注者 %>"> <input type="text" disabled="disabled" name=入力者 size=20 style="background:white; color:#000000;" align="middle" value="<%= obj.入力者 %>"> </td> </tr> <% } %> </table> </div> </div> 【CSS】 .test { height: 250px; overflow-y: scroll; }

専門家に質問してみよう