2017-01-12 9 views
1

私はこのPHPのものをすべて使い慣れていて、自分の背景がJavaであるため、すべてが本当に混乱しているようです。オブジェクトへのフォームの値の取得array +動的テーブルのオブジェクトの表示

説明: ユーザーの入力を取得して別のページの表に投稿する必要があるフォームがあります。 私はこのテーブルは動的なテーブルであると考えていますので、複数のオブジェクトを追加することに制限はありません。 オブジェクトは、一度に1つずつ追加され、フォームの記入が完了してサブミットをクリックすると終了します。

この

は、私は、ユーザの入力を取得する必要がありますフォームです:

:あなたは、私が一緒に取得する必要がある値の異なるタイプがある見ることができるよう、そのため私は、クラスとコンストラクタを作成し
<p>Assignment name</p> 
<form action="the_next_page.php" method="post"> 
<input id="assignment_name" name="asgn_name"> 

<p>Due Date</p> 
<input id="due_date" name="due_date" type="date"><br> 

<p>Rank:</p> 
<input type="radio" name="rank" value="1" checked> 1<br> 
<input type="radio" name="rank" value="2"> 2<br> 
<input type="radio" name="rank" value="3"> 3<br> 
<input type="radio" name="rank" value="4"> 4<br> 
<input type="radio" name="rank" value="5"> 5<br> 

<p>Description</p> 
<textarea id="comments" name="comments"></textarea> 

<input name="Submit" type="submit" value="Submit"> 
<input name="reset" type="button" value="Reset"> 

</form> 

今、ポイントは私が取得する必要があるということです

<?php 
$Arr=array(); 

class assignment { 
public $asgn_name; 
public $asgn_due_date; 
public $asgn_rank; 
public $asgn_description; 


public function __constructor($asgn_name, $asgn_due_date, $asgn_rank,  
$asgn_description){ 
$this-> $asgn_name=$asgn_name; 
$this-> $asgn_due_date=$asgn_due_date; 
$this-> $asgn_rank=$asgn_rank; 
$this-> $asgn_description=$asgn_description; 
} 

} 

$assignment_temp=new assignment($asgn_name=$_REQUEST['name'],  
$asgn_due_date=$_REQUEST['due_date'], $asgn_rank=$_REQUEST['rank'], 
$asgn_description=$_REQUEST['comments']); 

array_push($Arr, $assignment_temp); 
?> 
私はこの部分がよく書かれていることはよく分からない

、恩赦...すべてのオブジェクトはフォームページから属性を抽出し、次のページに渡します(サブミットをクリックすると、テーブルに表示する必要があります)。

表は以下のとおりです。

<table> 

<tr> 
<td>text field</td> 
<td>Date field</td> 
<td>Radio button selection</td> 
</tr> 

<tr> 
<td><?php echo ($_SESSION['due_date']=$_REQUEST['asgn_name']);?> 
</td> 
<td><?php echo ($_SESSION['due_date']=$_REQUEST['due_date']);?> </td> 
<td><?php echo ($_SESSION['due_date']=$_REQUEST['rank']);?> </td> 
</tr> 

</table> 

$ _SESSIONあなたは、テーブル内の参照/ $ _REQUESTは私が唯一のフィールドを表示することができます一時的な解決策であるが、それはオブジェクトに値を保存しません。 また、挿入された最後の値のみが表示され、新しい値を挿入すると値が上書きされます。

基本的に私の質問は次のとおりです。 1)フォームの値をオブジェクト配列に取得し、次のページに渡すにはどうすればよいですか? 2)オブジェクトをローカルに保存して、新しいオブジェクトが前のオブジェクトを上書きしないようにするにはどうすればよいですか? 3)この場合、ダイナミックテーブルは最適なソリューションですか(ディスプレイ用)?

ありがとうございます!

+0

'Posting_page.php'は、フォームに渡されたすべての値を取る場所ですか? – Perumal

+0

ユーザーはフォームページで複数の割り当てを一度に送信できますか? – k97513

+0

この質問は広すぎます。ここに少しのPHPコードはありませんが、これはコード作成サービスではありません。あなた自身で問題を解決するためにいくつかの努力をして、あなたは良い助けを得るでしょう。 – miken32

答えて

0

1)フォームの値をオブジェクト配列に取得して、次のページに渡すにはどうすればよいですか?

多くのオブジェクトを含むダイナミックアレイを使用している場合は、フォーム入力の名前を慎重に指定することで、$ _POST/$ _ GET/$ _REQUESTデータで整然とした配列を取得できます。このアプローチは通常PHPでうまくいきます:

for ($i=0; $i<5; $i++) { 
    echo '<input name="objs[' . $i . '][val1]" type="text">'; 
    echo '<input name="objs[' . $i . '][val2]" type="text">'; 
    echo '<input name="objs[' . $i . '][val3]" type="text">'; 
} 

ご覧のとおり、私たちは大括弧を使って配列を表示しています。その後、あなたのvar_dumpは($ _ POST)はこのようになりますあなたのフォームメソッド=「ポスト」場合:私は、ローカルオブジェクトを保存することができますどのように

array (size=1) 
    'objs' => 
    array (size=5) 
     0 => 
    array (size=3) 
     'val1' => string 'v1-0' 
     'val2' => string 'v2-0' 
     'val3' => string 'v3-0' 
     1 => 
    array (size=3) 
     'val1' => string 'v1-1' 
     'val2' => string 'v2-1' 
     'val3' => string 'v3-1' 
     2 => 
    array (size=3) 
     'val1' => string 'v1-2' 
     'val2' => string 'v2-2' 
     'val3' => string 'v3-2' 
     3 => 
    array (size=3) 
     'val1' => string 'v1-3' 
     'val2' => string 'v2-3' 
     'val3' => string 'v3-3' 
     4 => 
    array (size=3) 
     'val1' => string 'v1-4' 
     'val2' => string 'v2-4' 
     'val3' => string 'v3-4' 

2)は、新しいオブジェクトがオーバー前のものを書きません。挿入された? これが何を意味するかはまったくわかりません。毎回データベースINSERTを実行している場合は、常に新しいレコードが作成されるため、以前のレコードのUPDATEについて心配する必要はありません。ここでの詳細は、DB構造によって異なります。

3)この場合、ダイナミックテーブルは最適なソリューションですか(ディスプレイ用)? それはすべてあなたが達成しようとしているものに依存します。

関連する問題