• ベストアンサー

受け渡した変数が、プログラム実行後に消えてしまう?!

いつもありがとうございますm(_ _)m。入力画面test1.phpをlocation.replaceを使って[リロードしない為]切り替えて、別の画面test2.phpと連携させています。JSのwindow.openは顧客環境では使えません(大泣) test1.php→test2.php→test1.phpという流れで二つの変数を受け渡ししたいのですが。。。 (1)test1.phpにある変数 $row1[code] $row1[name] inputボタンをクリックすることで、URLを使って次のファイルに渡す <input type="button" value="go2" onClick='location.replace ("http://********/test2.php?row1[code]=<? echo $row1[code];?>&row1[name]=<? echo $row1[name];?>")' name="button"> (2)test2.php フォームのテキストフィールドが用意されている <input name="code" type="text" value="<? echo $row1[code]; ?>"> <input name="name" type="text" value="<? echo $row1[name]; ?>"> test1.phpから、test2.phpの画面に切り替わった瞬間には、2つのの値がキチンと表示されている。 ここでnameに入った値を元に、サブミットボタンで処理。 <input type="submit" name="read" value="読み込み"> この時name部分に関しては、DB読込・結果をname&その他の項目と共にフォーム上にちゃんと再表示できるが、codeの値が消えてしまう。。 PHPの処理部$read部に以下のように2通り、書き加え試しましたが、だめでした。 $row1[code] = $row1[code]; $row1[code] = $_GET['$row1[code]']; なぜ消えてしまうのか? 変数をキープするにはどうしたらいいでしょうか? あるいは、他に良いアイディアなどありましたら、教えて下さい。よろしくお願いいたします。。。

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

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

$row1[code] = $_GET['$row1[code]']; ではなく、 $row1[code] = $_GET['row1[code]'];  じゃないかな?

sos000
質問者

お礼

全くそのとおりでした。ありがとうございました。

その他の回答 (1)

  • sisya
  • ベストアンサー率39% (97/244)
回答No.2

質問の内容のままでしたら#1さんの仰る通り 引数が間違っていますね。 他に良い方法を…とありましたので 回答させていただきますと、 POSTを使って受け渡しをしてはいかがでしょうか? test1.php <form method="post" action="test2.php"> <input type="hidden" name="code" value="<?$row1[code];?>"> <input type="hidden" name="name" value="<?$row1[name];?>"> <input type="submit" value="go2"> test2.php <input type="text" name="code" value="<?$_POST['code']?>"> <input type="text" name="name" value="<?$_POST['name']?>">

sos000
質問者

お礼

こちらもやってみました。ありがとうございました。

関連するQ&A

専門家に質問してみよう