ホームページ > バックエンド開発 > PHPチュートリアル > PHP で複数のフォームから投稿されたデータを受け取るにはどうすればよいですか?

PHP で複数のフォームから投稿されたデータを受け取るにはどうすればよいですか?

WBOY
リリース: 2016-06-23 13:59:57
オリジナル
1194 人が閲覧しました

<!DOCTYPE html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>多表单提交</title></head><body>	<form action="" method="post">    	<table width="500">        	<tr>            	<th>标题</th>                <th>作者</th>                <th>添加时间</th>            </tr>            <tr>            	<td><input type="text"  name='title'/></td>            	<td><input type="text" name='user' /></td>                <td><input type="text" name='addtime'/></td>                            </tr>            <tr>            	<td><input type="text" name='title' /></td>                <td><input type="text" name='user'/></td>                <td><input type="text" name='addtime'/></td>            </tr>            <tr>            	<td colspan="3" align="center">                	<input type="submit" value="提交" />                    <input type="reset" value="重置" />                </td>            </tr>        </table>        </form>	<?php		$title=$_POST['title'];		$user=$_POST['user'];		$addtime=time();		echo '<hr>';		echo $title;		echo '<br>'.$user;		echo '<br>'.$addtime;	?></body></html>
ログイン後にコピー


私のコードは次のようなものです、フォームは2つ以上、おそらく5、10、20を1つずつ追加する必要がありますが、


ディスカッション (解決策) への返信

配列を使用して実装する必要がありますが、

                  <tr>                <td><input type="text"  name='title[0]'/></td>                <td><input type="text" name='user[0]' /></td>                <td><input type="text" name='addtime[0]'/></td>                            </tr>           <tr>                <td><input type="text"  name='title[1]'/></td>                <td><input type="text" name='user[1]' /></td>                <td><input type="text" name='addtime[1]'/></td>                            </tr>            <tr>                <td><input type="text" name='title[2]' /></td>                <td><input type="text" name='user[2]'/></td>                <td><input type="text" name='addtime[2]'/></td>            </tr>
ログイン後にコピー
はテストしていません。 。

<tr>                <td><input type="text"  name='title[]'/></td>                <td><input type="text" name='user[]' /></td>                <td><input type="text" name='addtime[]'/></td>                            </tr>            <tr>                <td><input type="text" name='title[]' /></td>                <td><input type="text" name='user[]'/></td>                <td><input type="text" name='addtime[]'/></td>            </tr>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

はい、配列を使用します。

<tr>                <td><input type="text"  name='title[]'/></td>                <td><input type="text" name='user[]' /></td>                <td><input type="text" name='addtime[]'/></td>                            </tr>            <tr>                <td><input type="text" name='title[]' /></td>                <td><input type="text" name='user[]'/></td>                <td><input type="text" name='addtime[]'/></td>            </tr>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

うーん、サポートチャーム、以前一度使ったことがあるのですが、こんな感じで実現しました。

もちろん配列です

<tr>                <td><input type="text"  name='title[]'/></td>                <td><input type="text" name='user[]' /></td>                <td><input type="text" name='addtime[]'/></td>                            </tr>            <tr>                <td><input type="text" name='title[]' /></td>                <td><input type="text" name='user[]'/></td>                <td><input type="text" name='addtime[]'/></td>            </tr>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー



ありがとう、でもこの場所に PHP を書くにはどうすればよいですか? 自分で書いた後、送信後に配列は 1 つしかありません
$title=$ _POST['タイトル'];
$_POST['ユーザー'];

echo '
'
echo '
'.print_r($user);
echo '

'.$note

==============
変更方法このような配列に変換します

	$st=array(			array('小李','19','语文'),			array('王强','20','数学'),			array('张王磊','29','演员'),			array('胡科林','27','钢琴老师')				);
ログイン後にコピー




<!DOCTYPE html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>多表单提交</title></head><body>	<form action="" method="post">    	<table width="500">        	<tr>            	<th>标题</th>                <th>作者</th>                <th>说明</th>            </tr>            <tr>            	<td><input type="text"  name='title[]'/></td>            	<td><input type="text" name='user[]' /></td>                <td><input type="text" name='note[]'/></td>                            </tr>            <tr>            	<td><input type="text" name='title[]' /></td>                <td><input type="text" name='user[]'/></td>                <td><input type="text" name='note[]'/></td>            </tr>            <tr>            	<td colspan="3" align="center">                	<input type="submit" value="提交" />                    <input type="reset" value="重置" />                </td>            </tr>        </table>        </form>	<?php		$title=$_POST['title'];		$user=$_POST['user'];		$note=$_POST['note'];				echo '<hr>';		echo '<pre class="brush:php;toolbar:false">';		print_r($title);		echo '<br>'.print_r($user);		echo '<br>'.print_r($note);		echo '
'; ?>
ログイン後にコピー

私のコードは次のようになりますが、出力後に 1 が複数あるのはなぜですか?


また、送信すると、デフォルトは 3 つの 1 次元配列になります。 . どうすれば二次元配列にできるのでしょうか?
欲しい二次元配列はこんな感じです

$st=array(        array('第一个标题','admin','13-05-15'),        array('第二个标题','zhansan','zhagnsan'),        array('最新消息','lisa','note'),        array('马航','马来西亚','其他说明')         );
ログイン後にコピー


ページから送信された配列を整理しましょう
$out = array();foreach ($_POST as $key => $value) {	foreach ($value as $k => $v) {		$out[$k][] = $value[$k]	}}
ログイン後にコピー

あと1つではなく、あと2つ! 2番目の配列の前に1はありませんか?

bool print_r (混合式 [, bool return] )




foreach($_POST['title'] as $k=>$v){    $ar[]=array($v,$_POST['user'][$k],$_POST['note'][$k]);}print_r($ar);
ログイン後にコピー

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート