テキストボックスに入力した値を配列に渡すには?

このQ&Aのポイント
  • 一つのテキストボックスに入力した値を配列に渡す方法について教えてください。
  • データの一覧を取得し、一斉に任意の同じ数値に変更するボタンを作りたいと思っています。
  • あらかじめ決められた変数をテキストボックスに入力した値に置き換える方法について教えてください。
回答を見る
  • ベストアンサー

一つのテキストボックスに入力した値を配列に渡すには?

お世話になります。 While文でデータの一覧を取得し、あるデータ項目を一斉に任意の同じ数 値に変更するボタンを作ろうと思っています。 ------------------------------------------------------------------ echo "<form action = \"server_management_remove_all.php\" method = \"post\">"; //変数 $all_profit1='4'; $all_profit2='3'; $all_profit3='2'; while($row = mysql_fetch_array($result)){ 中略 echo "<input type = \"hidden\" name = \"profit1[$row[item_id]]\" value =\""; echo "$all_profit1"; echo "\">"; echo "<input type = \"hidden\" name = \"profit2[$row[item_id]]\" value =\""; echo "$all_profit2"; echo "\">"; echo "<input type = \"hidden\" name = \"profit3[$row[item_id]]\" value =\""; echo "$all_profit3"; echo "\">"; } echo "<input type=\"submit\" value=\"一斉更新\">"; echo "</form>"; ?> ------------------------------------------------------------------ 上記のようにあらかじめ決められた変数を用いて、それぞれのデータを 一斉に更新する事は出来るのですが、この変数をテキストボックスに入 力した任意の値にしようとするとどうもうまくいきません。 多少分かりにくいかもされませんが、やりたいこととしては 商品A 商品B 商品C と商品があったとして、それぞれのprofit1~profit3を商品A 商品B 商品C全て同じ数値にしたい場合、 profit1~profit3を1つのテキストボックス(profit1~profit3各1 つのテキストフィールド)に入力した値を商品A 商品B 商品C全て のprofit1~profit3に入力されるようにしたいという意味です。 テキストボックス(profit1~profit3の)に入力した値が変数 $all_profit1~$all_profit3に入ればいいのではないかと思うのです が、いろいろ試してみたところ、どうもうまくいきません。 どうかご教授のほどよろしくお願いします。

  • PHP
  • 回答数3
  • ありがとう数4

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

  • ベストアンサー
  • koke29
  • ベストアンサー率58% (114/196)
回答No.3

$sql.=" profit1='".$_POST[profit1][$item_id]."',"; ここが例えば、変更後の数値が「1」なら $sql.=" profit1='1',"; っていう文になるようにすればいいってことですよね?? 入力欄のname=allとして { $sql="update hametome_item set"; $sql.=" profit1='".$_REQUEST[all]."',"; $sql.=" profit2='".$_REQUEST[all]."',"; $sql.=" profit3='".$_REQUEST[all]."',"; $sql.=" where item_id = ".$item_id; mysql_query($sql); } ではダメなんでしょうか

hametome
質問者

お礼

やりたいことが出来ました。ありがとうございます。 ものすごく勉強になりました。私の質問に何度もお付き合いいただき、ありがとうございました。

その他の回答 (2)

  • koke29
  • ベストアンサー率58% (114/196)
回答No.2

ああ…同じ値でって書いてますね、スミマセン 送信後のコードも書いた方がアドバイスしやすいかもです

hametome
質問者

補足

ご回答ありがとうございます。 送信後のコードというのは、受け取り側のファイルのコードという 意味でしょうか? 受け取り側のファイルは、 ------------------------------------------------------------------ { $sql="update hametome_item set"; 中略 $sql.=" profit1='".$_POST[profit1][$item_id]."',"; $sql.=" profit2='".$_POST[profit2][$item_id]."',"; $sql.=" profit3='".$_POST[profit3][$item_id]."',"; $sql.=" where item_id = ".$item_id; mysql_query($sql); } echo "レコードの修正が完了しました。"; } ------------------------------------------------------------------ といったような感じです。

  • koke29
  • ベストアンサー率58% (114/196)
回答No.1

type=hidden を type=text に変えて入力じゃダメなんですか??

hametome
質問者

補足

早速のご回答ありがとうございます。 while文で引っ張ってきたデータをtype=textで個々に更新する という意味合いではなく、一つの(profit1~profit3各1つの テキストフィールド)テキストフィールドに入力した値を全て のレコードのprofit1~profit3に入力したいのです。 あらかじめ定めた変数を($all_profit1='4';のように)それぞ れのデータを一斉に更新する事は出来るので変数にテキストボッ クス(profit1~profit3の)に入力した値が変$all_profit1~$all_profit3に入ればいいのではないかと思う のですが何か良い方法はないものでしょうか?

関連するQ&A

  • 配列として受け取った値を配列でない値に戻すには?

    お世話になります。 server_management.php(フォーム)から、server_management_remove_all.php(受け取り側ファイル)に配列としてデータを渡し、データを一括で更新するフォームを作成したのですが、server_management_remove_all.phpにおいて、header("Location: https://www.hogehoge/hogegege/server_management.php?id=".$id);というように戻り先のURLを指定し指定したURLに戻りたいのですが、変数$idに入れたい数字 (category_id)が配列として渡されてきているためかうまく変数$idに入れる事が出来ません。 【server_management.php】のソース ------------------------------------------------------------------ echo "<form action = \"server_management_remove_all.php\" method = \"post\">"; while($row = mysql_fetch_array($result)){ echo "<input type = \"hidden\" name = \"category_id[$row[item_id]]\" value =\""; echo $row["category_id"]; echo "\">"; 中略 } echo "<p>利幅1:<input type = \"text\" name = \"all\" value =\""; echo $row["all"]; echo "\" size = \"40\"></p>"; echo "<p>利幅2:<input type = \"text\" name = \"all2\" value =\""; echo $row["all2"]; echo "\" size = \"40\"></p>"; echo "<p>利幅3:<input type = \"text\" name = \"all3\" value =\""; echo $row["all3"]; echo "\" size = \"40\"></p>"; echo "<input type=\"submit\" value=\"一斉更新\">"; echo "</form>"; ?> ------------------------------------------------------------------ 【server_management_remove_all.php】のソース ------------------------------------------------------------------ $id=$_POST[category_id][$item_id]; header("Location:https://www.hogehoge/hogegege/server_management.php?id=".$id); if(isset($_POST['server_name'])){ foreach($_POST['server_name'] as $item_id=>$server_name) { $sql="update hametome_item set"; $sql.=" profit1='".$_REQUEST[all]."',"; $sql.=" profit2='".$_REQUEST[all2]."',"; $sql.=" profit3='".$_REQUEST[all3]."',"; 中略 $sql.=" category_id='".$_POST[category_id][$item_id]."'"; $sql.=" where item_id = ".$item_id; mysql_query($sql); } } ------------------------------------------------------------------ データを入力する際には、https://www.hogehoge/hogegege/server_management.php?id=15といったようなURL(戻りたいURL)から入力する形になっていて、同一のカテゴリーであれば、category_idは同じ数字です。 このような場合、どのようにすればよいのでしょうか?どうかご教授のほどよろしくお願いします。

    • ベストアンサー
    • PHP
  • テキストボックスの値で配列の値を求めるには?

    やりたいと思っているのは、 (1) "INPUT" の値を入力。 (2) "koteichi" は他からの参照値。 (3) "goukei"に(1)と(2)の合計値。 (4) "total" に(3)の値に該当する配列の値。 (実際には配列の値を代入した式の答え。) という流れになります。 (3)まではなんとか分かるのですが、 (4)はどのように配列の値を代入すればいいのかが 分かりません。  なにぶん最近始めた初心者なので不規則な値は配列を使えばいいと解釈したのですが、まったく使い方を間違えているのでしょうか? こういった場合は別のやり方があるのでしょうか? どなたかよろしくお願いします。 <SCRIPT language=JavaScript1.1> <!-- rank = new Array(6); rank[0]=0; rank[1]=5;[rank2]=8;[rank3]=12;rank[4]=16;rank[5]=22; function calc(){ document.myform.goukei.innerText = eval(document.myform.INPUT.value) +eval(document.myform.koteichi.value); } // --> </SCRIPT> </HEAD> <BODY> <form name="myform"> <INPUT size="20" type="text" name="INPUT" value="0" onchange="calc()"/>+<INPUT size="20" type="text" name="koteichi" value="10">=<INPUT size="20" type="text" name="goukei" value="0"> <INPUT size="20" type="text" name="total" value="0"> </FORM> </BODY>

  • javascriptで取得した値をテキストボックスに・・・

    IE5.5です。 javascriptで取得した値をテキストボックスに格納したいのですが、 うまくいきません。 <SCRIPT language="javascript"> var varVal=true </script> <form> document.write("<input type='hidden' name='myVal' vaue="+varVal+">"); </form> javascriptが初心者でよくわからないのですが、 例えば <input type="hidden" name="myVal" value=varValに格納された値> といった書き方もできるのでしょうか? よろしくご教授願います。

  • 計算結果をPOSTするには?

    お世話になります。 $array_sale_price1=array($row["stock1_price"],$row["stock2_price"],$row["stock3_price"]); $sale_price1_max=max($array_sale_price1); $sale_price1_true1=$sale_price1_max * $row["profit1"]; $sale_price1_true=ceil($sale_price1_true1); $sale_price1_true1_not_stock_name=$row["buy_price"] * $row["profit1"]; $sale_price1_true_not_stock_name=ceil($sale_price1_true1_not_stock_name); if (empty($row["stock1_name"]) and empty($row["stock2_name"]) and empty($row["stock3_name"])) { echo"<div class='sale_price1_case2'>"; echo "<input type = \"hidden\" name = \"sale_price1[$row[item_id]]\" value = \""; echo "$sale_price1_true_not_stock_name"; echo "\">"; echo"<p>"; echo "$sale_price1_true_not_stock_name"; echo"</p>"; echo"</div>"; } else { echo"<div class='sale_price1_case2'>"; echo "<input type = \"hidden\" name = \"sale_price1[$row[item_id]]\" value = \""; echo "$sale_price1_true"; echo "\">"; echo"<p>"; echo "$sale_price1_true"; echo"</p>"; echo"</div>"; } $stock1_price_null=0; if (empty($row["stock1_name"])) { echo"<div class='stock_contents_case1'>"; echo "<input type = \"hidden\" name = \"stock1_price[$row[item_id]]\" value =\""; echo $row["stock1_price_null"]; echo "\">"; echo"<p>"; echo "---"; echo"</p>"; echo"</div>"; } else { echo"<div class='stock_contents_case1'>"; echo "<input type = \"text\" name = \"stock1_price[$row[item_id]]\" value =\""; echo $row["stock1_price"]; echo "\" style='width:25px'>"; echo"</div>"; } 中略 //利幅1の設定 echo"<div class='sale_price1_case1'>"; echo "<input type = \"text\" name = \"profit1[$row[item_id]]\" value =\""; echo $row["profit1"]; echo "\" style='width:25px'>"; echo"</div>"; 中略 While文でデータを取得し、配列でデータを渡すことでデータを一括して更新するフォームを作っています。上記のソースような形で、sale_price1を他のデータ(stock1_price stock2_price stock3_price profit1)から計算して求めるフォームを作っているのですが、ボタンを一度押しただけではstock1_price stock2_price stock3_price profit1は更新されますが、計算結果が入るべきデータ(sale_price1)が更新されず、もう1回ボタンを押すと計算結果のデータがMySQLに格納されます。 よくよく考えて見れば、1回目にボタンを押した段階では計算結果(sale_price1)は修正前のstock1_price stock2_price stock3_price profit1で計算された計算結果(sale_price1)がポストされているので修正後の計算結果(sale_price1)がMySQLに格納されないという事が判明したのですが、修正後の値(フォームに新規に入力した値)から計算された値をPOSTするには、どうしたらよいのでしょうか? 色々な事を試してみたのですが、どうもうまくいきません。ご教授いただけましたら幸いです。よろしくお願いします。

    • 締切済み
    • PHP
  • 配列に値を入れたいのですが・・

    Perlは超初心者です。 既存テキストデータファイルを編集して、上書き保存できるようしたくて、次のようなテキストデータを ===== 山田 田中 加藤  ・  ・ ===== 読込んで、次のようなHTMLを作成する様にしました。 <input type='text' name='name[0]' value='山田'> <input type='text' name='name[1]' value='田中'> <input type='text' name='name[2]' value='加藤'>             ・             ・ ここから、テキストボックスの値を編集して、Submitで別Perlプログラムにデータを送信し、次のようなプログラムでデータを読込めば ======================================================================== $count = $in{'count'}; #データのレコード件数です。ここは問題ありません。 for($x=0;$x<=$count;$x++){ $simei[x]=$in{'name[x]'}; } ======================================================================== $simei[0]=山田、$simei[1]=田中、$simei[2]=加藤、・・・と配列変数に入って、それをファイルに上書きするつもりだったのですが、変数には何も代入されないようです。 どうすれば、私の思うようになるでしょうか?

    • ベストアンサー
    • Perl
  • テキストボックスにPHPの配列の値を代入

    function set_form($list){  ~ (1) <TD><INPUT type="text" name="バッチNo." id="text1" size="30" class="ws1" value="<?php echo $list[0];?>"> (2) <TD><INPUT type="text" name="バッチNo." id="text1" size="30" class="ws1" value="<?php echo $list['tokuisaki_syamei'];?>"> $list = array( 'tokuisaki_syamei' => "$tokuisaki_syamei",         ~ 上記のようなPHPスクリプトで、ハッシュ$list の第一要素の中身を、フォームのテキストボックスに表示させたいのですが、(1)、(2)どちらも、シンタックスエラーが返ってきます。どういう書き方をすれば 配列の要素名そのものではなく、その中身($tokusaki_syameiのなかの値)をテキストボックスにセットできるのでしょうか。ご指導よろしくお願いします。

    • 締切済み
    • PHP
  • mysqlの結果セットを配列に

    while($row=mysql_fetch_array($res)){ echo "<form action=kousin.php method=post>"; echo "<TD bgcolor=#FFFFFF><input type='text' name=zaiko[] value=". $row["注文"] . "></td>"; echo "<input type=hidden name=store1 value=". $row["注文"] .">"; --------------------------------------------------- $zaiko[]=$_POST["zaiko[]"]; 上記のようなイメージでフォームから送った結果セットを配列として格納したいのですが、どのようにしたら良いのでしょうか?よろしくお願いします。

    • ベストアンサー
    • PHP
  • JSP内での配列の値取得方法。

    こんにちは。 -------- (略) <SCRIPT LANGUAGE="JavaScript" > function NextPage(no){ with( document.frm1 ) { hidNO.value = no; hidPlanId.value = 「ここに配列から取得した値を表示したい」; action = "Next.jsp"; submit(); } (略) <FORM name="frm1"> <% for(int i=0; i<(DBより取得した配列).length; i++) { ROW(HashMap継承の配列クラス) row = rows[i]; %> <INPUT TYPE="hidden" ID="hidKey" NAME="hidKey" VALUE="<%= i番目の値(1)%>" > <INPUT TYPE="hidden" ID="hidKey" NAME="hidKey" VALUE="<%= i番目の値(2)%>" > <TD><INPUT TYPE="button" NAME="btnDet<%= i %>" VALUE="詳細表示" onClick="NextPage('<%= i %>');" > </TD> <% } %> </FORM> ******* 上記のhidkeyのvalue値をJavaScript内でi番目の値を 取得するにはどのように記載したらよいのでしょうか・・・。 他のクラス等を使っているため、うまくコードが表現 できていないかもしれませんが、 もしこれでわかった方、ぜひ教えてください。

    • ベストアンサー
    • Java
  • データーベースをフォームから入力し更新

    データーベースをフォームから入力し更新 登録済のデーターベースをフォームから入力し更新したいのですが、どうしてもうまくいきません。 http://park18.wakwak.com/~little-box/Dreamweaver/sql010.htm のサイトを参考にしているのですがitiran.phpのところからつまづいています。 // 検索した結果を全部表示 echo "<table border=1>"; echo "<tr><td>id</td><td>name</td></tr>"; while($row=mysql_fetch_array($res)){    echo "<tr>";    echo "<td>". $row["name"] . "</td>";    echo "<td>". $row["age"] . "</td>";    echo "<form action=koushin_input.php method=post>";    echo "<input type=hidden name=id value=" . $row["id"] . ">";    echo "<td><input type=submit value=更新></td>";    echo "</form>";    echo "<form action=sakujo.php method=post>";    echo "<input type=hidden name=id value=" . $row["id"] . ">";    echo "<td><input type=submit value=削除></td>";    echo "</form>";    echo "</tr>"; } echo "</table>"; の辺りがおかしいのではと思っているのですが… アドバイスください。また、他に参考になるサイトがありましたらぜひ教えてください。

    • ベストアンサー
    • PHP
  • 配列の値の引渡し

    目的: 配列の値をフォームによりCSVに書き込みたい。 1.php 値入力 2.php 確認画面 for($i = 0;$i < count(@$_POST["q1"]); $i++){ echo "<p>" .$_POST["q1"][$i]; } として、1.phpで入力された値を表示 また、 <input type="hidden" name="q1[]" value="<? echo $q1[$i] ?>"> として、3.phpに値を引き渡すことをしているのですがうまくいきません。 3.php 完了画面 CSVに書き込み処理 アドバイスよろしくお願いします。

    • 締切済み
    • PHP

専門家に質問してみよう