スレッド表示 | フラット表示〕 全トピック 920 件中 5 番目 次≫ ≪前

php同士の変数の受け渡し?

created: 2011-04-25 13:34 | modified: 2011-04-28 17:48 | reply: 4

[4405] php同士の変数の受け渡し?

user: たか | created: 2011-04-25 13:34
すいません、教えていただけますでしょうか

別の画面から取得した値で検索し、その検索結果が複数ある場合
それぞれの$_row['id']の値を次のphpの画面にもっていきたいのですが
うまくできません、

$_SESSIONでは最後の1レコードしか次の画面に持っていけませんでした
このコードを実行すると複数のレコードと”編集”のボタンが出来ますが
”編集”ボタンをクリックしても何も起こりません。
クリックすると"testmnt03.php"に そのレコードの$ROW['ID']を
持って飛び "testmnt03.php"で新たに検索を実行させてそのレコードの
詳細を表示させたいのです

どうすればよいでしょうか?よろしくお願い致します。
ソースはこんな感じです

$row = mysql_fetch_array($result);

echo "<script type='text/JavaScript'>
function sendid(xa){
var x = document.getElementById('mmid'+xa).value;
document.mmform.mmid.value = x;
document.mmform.submit;
}
</script>";

$xa = 0;

while ($row = mysql_fetch_assoc($result)) {

$xa++;
$item0 = $row['id'];

print('<table border="1"><tr><td>ID</td>
<td>'.$row['id'].'</td>
<td>住所</td><td>'.$row['add1'].'</td>

<td><form name="mmform" method="post" id="mmid<?=$xa ?>"
action="testmnt03.php">
<input type="button" value="編集" onClick="sendid(<?=?xa ?>)">
<input type="hidden" name="mmid<?=$xa ?>" value="<?=$item0 ?>">
</form><td></tr>
</table>');
}
reply: 4406 返信 編集 削除

[4406] Re. php同士の変数の受け渡し?

user: ゆうじ | created: 2011-04-26 00:02
こんばんわ。
コードをそのまま実行できないので推定です。

フォームの中のショートオープンタグ(<?= ?>)は
ただの文字列として評価され、変数が展開されてないのでは。
まずはHTMLが想定通りか確かめてください。

なにもおこらないのは、これが展開されず
Javascriptエラーとなってるのだとおもいます。

コードを載せるときは
コピペで即実行出来るコードが載せてあると
確かめやすいので、もっと実のあるやりとりが出来ます。
Parent: 4405  reply: 4407 返信 編集 削除

[4407] Re.Re. php同士の変数の受け渡し?

user: たか | created: 2011-04-26 15:50
ゆうじさま早速のお返事ありがとうございます。
すいません、分かりにくいですね
どういう風に質問したら良いのか分からなかったものですから
申し訳ありません。

御指摘のところを見直してみたのですが良く分かりませんでしたので、
もう一度質問させてください
今のところ以下のようになると思います

親画面から値を渡されてaaa.phpで検索の結果が $result に入っています
そこで各々の詳細を検索する為に bbb.php に値を持って
いきたいのですがうまくいきません。
(javascriptを勉強していないのが一番の原因かもしれないのですが)


-----------------aaa.php--------------
<?php

$result = array(106,245,310,351);

echo '<script type="text/JavaScript">
function sendid(xa){
var x = document.getElementById(mmid[xa]).value;
document.mmform.mmid($xa).value = x;
document.mmform.submit();
}
</script>';

$xa = 0;

while ($xa < 4) {

$item0 = $result[$xa];
print('<table border="1"><tr><td>ID</td><td>'.$result[$xa].'</td>

<td><form name="mmform" method="post" id="mmid[$xa]"
action="bbb.php">
<input type="button" value="編集" onClick="sendid($xa)">
<input type="hidden" name="mmid[$xa]" value="$item0">
</form><td></tr></table>');
$xa++;
}
?>

-------------------bbb.php----------------------
<?php
if (isset($_POST['mmid'])){
$sid = $_POST['mmid'];
}else{
}
?>

大変恐縮ですがもう一度教えていただけますでしょうか
宜しくお願い致します。
Parent: 4406  reply: 4408 返信 編集 削除

[4408] まずHTMLソースを確認してみる

user: ゆうじ | created: 2011-04-26 23:27
ブラウザに表示されてるものは、
サーバーが返してきたレスポンスを
ブラウザが解析し体裁を整えて見せてる状態なので、
よりPHPの出力に近いHTMLソースを見て
原因を探ろうというわけです。

aaa.phpを実行したところこんなHTMLソースになってました。
$xa や $item0 など変数が展開されてないのがわかります。
まずはこれを想定してるHTMLになるよう
PHPのコードを直することからです。

aaa.php の実行結果(HTMLソース)
<script type="text/JavaScript">
function sendid(xa){
var x = document.getElementById(mmid[xa]).value;
document.mmform.mmid($xa).value = x;
document.mmform.submit();
}
</script><table border="1"><tr><td>ID</td><td>106</td>

<td><form name="mmform" method="post" id="mmid[$xa]"
action="bbb.php">
<input type="button" value="編集" onClick="sendid($xa)">
<input type="hidden" name="mmid[$xa]" value="$item0">
</form><td></tr></table><table border="1"><tr><td>ID</td><td>245</td>

<td><form name="mmform" method="post" id="mmid[$xa]"
action="bbb.php">
<input type="button" value="編集" onClick="sendid($xa)">
<input type="hidden" name="mmid[$xa]" value="$item0">
</form><td></tr></table><table border="1"><tr><td>ID</td><td>310</td>

<td><form name="mmform" method="post" id="mmid[$xa]"
action="bbb.php">
<input type="button" value="編集" onClick="sendid($xa)">
<input type="hidden" name="mmid[$xa]" value="$item0">
</form><td></tr></table><table border="1"><tr><td>ID</td><td>351</td>

<td><form name="mmform" method="post" id="mmid[$xa]"
action="bbb.php">
<input type="button" value="編集" onClick="sendid($xa)">
<input type="hidden" name="mmid[$xa]" value="$item0">
</form><td></tr></table>
Parent: 4407  reply: 4409 返信 編集 削除

[4409] できました

user: たか | created: 2011-04-28 17:48
ありがとうございます、以下のようなコードにしたら出来ました。
余計なものは必要なかったんですね。
HTMLのソースを確認するのが大事だというのが良く分かりました


<?php
$result = array(16,25,30,31);
$xb = count($result);
$xa = 0;
while ($xa < $xb) {
$item0 = $result[$xa];

print('<table border="1"><tr><td>ID</td><td>'
.$result[$xa].
'</td><td><form name="mmform" method="post" action="bbb.php">
<input type="submit" value="編集" >
<input type="hidden" name="mmid" value='
.$item0.
'></form></td></tr></table>'
);
$xa++;
}
?>

また変な質問をするかもしれませんが宜しくお願い致します。
Parent: 4408  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 5 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑