- ベストアンサー
table を配列で取得
HTML のtableタグで生成した表の各セルの値を、 PHPの配列で取得するやり方があるらしいのですが。 どのように記述するのでしょうか? サンプル等がありましたら、教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 そもそも、<table>や<tr>や<td>は「name」属性を持ちません・・・。 <table>~</table> を<form>で囲って、<td>に<input type="hidden"...>とか・・・。
その他の回答 (3)
- yambejp
- ベストアンサー率51% (3827/7415)
>ヒアドキュメントを使用せずに、HTMLのname属性から取得して 別ファイルのhtmlをとるならfile_get_contents()で変数にとりこめば いいだけでしょ?
お礼
回答ありがとうございます
- taka451213
- ベストアンサー率47% (436/922)
こんばんは。 ちょっと質問の意味がわからないのですが・・・、 例えば、 <input type="text" name="test[]" value="aaa"> <input type="text" name="test[]" value="bbb"> とすると、 $_POST["test"] の結果は、 array(0=>"aaa",1=>"bbb") ですが・・・。
お礼
回答ありがとうございます
補足
回答ありがとうございます。 まさにそういった感じです。 そのやり方を<input>ではなく<table>でできないでしょうか? もしくは<table>か<table>内の<td>や<tr>でname属性を配列にして、 それらを何らかのカタチで<input>で送るというやり方があるのでしょうか。 いろいろ試してますが、うまくいきません。
- yambejp
- ベストアンサー率51% (3827/7415)
セルの結合さえなければこんな感じで無理やりいけます テーブルが複数ある場合は要調整 <?PHP $str=<<<eod test <table border> <thead> <tr> <th>h1</th> <th>h2</th> <th>h3</th> </tr> </thead> <tbody> <tr> <td>a1</td> <td>b1</td> <td>c1</td> </tr> <tr> <td>a2</td> <td>b2</td> <td>c2</td> </tr> <tr> <td>a3</td> <td>b3</td> <td>c3</td> </tr> </tbody> </table> test eod; print $str; $pattern="/(?<=<tr>).*?(?=<\/tr>)/mis"; preg_match_all($pattern,$str,$matches[0]); $pattern="/(?<=<t[dh]>).*?(?=<\/t[dh]>)/mis"; foreach((array) $matches[0][0] as $val){ preg_match_all($pattern,$val,$matches[1]); $matches[2][]=$matches[1][0]; } print "<pre>\n"; print_r($matches[2]); print "</pre>\n"; ?>
お礼
回答ありがとうございます
補足
回答ありがとうございます。 言葉が足りませんでした。 ヒアドキュメントを使用せずに、HTMLのname属性から取得して 配列を生成する方法があると聞きました。 そんな方法はないでしょうか?
お礼
当該方法でうまくいきそうです。ありがとうございました