2011-04-24 11 views
0

私はCMSを作成しており、クライアントが作成しようとしているページは、そのページを編集する、新しいページを追加する、新しいサブページを追加する、編集するサブページ。私はそのフォームを各アクションに何度もコピーしたくない。あなたの誰かが、最良の方法ですべての行動にそのフォームを使用する方法を知っているかどうかを知りたいと思います。1つのフォームphpで複数の作業を

<div class="containerholder"> 
<div class="container"> 
<div id="contain"> 
     <form method="post" id="customForm" action="edited.php"> 
      <div> 
       <label for="name">Navigation</label> 
       <input id="name" name="navigation" type="text" value="<?php echo $navigation ?>" /> 
      </div> 
      <div> 
       <label for="message">Content</label> 
       <textarea id="content" name="content" cols="" rows="" ><?php echo $content ?></textarea> 
      </div> 
      <div> 
       <input type="hidden" name="id" id="id" value="<?php echo $id ?>"> 
       <input id="send" name="send" type="submit" value="Save and update" /> 
      </div> 
     </form> 
    </div> 
</div></div> 

これは、あなたがそれを見たい場合は、私はそれを作るためにどのようなアイデアを持っていますが、それが最良の方法(プロ)であるように、それは私には見えるdoes notの形です。

ありがとうございました!

答えて

0

使用すべてのタスクのために、ボタンを提出し、提出ボタンの名前によって要求されたタスクを識別し、複数(通常は、クリックされた提出ボタンが提出された)

プロフェッショナル:それは私の目には「プロ」ではありませんすべてのタスクに単一のフォームを使用します。

0

Googleはラッキーな選択を感じて/その検索と同じようにあなたは、送信ボタンを複数使用することができます

submitボタンの名前=値のペアが、それはフォームデータの残りの部分であるとして送信される
<input id="send" name="send" type="submit" value="edit" /> 
    <input id="send" name="send" type="submit" value="new page" /> 
    <input id="send" name="send" type="submit" value="edit subpage" /> 
    <input id="send" name="send" type="submit" value="new subpage" /> 

サーバー上では同じ機能($ _GETまたは$ _POSTなど)を使用して収集されます

また、フォームコントロールとJavaScriptイベントを使用して、AJAX経由でサーバーとの通信を制御することもできますjavascriptを介して送信されるデータを正確に制御することができ、ページreloを待っていないエンドユーザにとってシームレスです広告)。単純なソースコードについては、http://www.w3schools.com/ajaxを参照してください。

0

は、たとえば、あなたが機能を選択するために、2つ以上のラジオボタンを追加します。

とPHPで

<?PHP 
... 

if($_POST['function'] == 'Add') 
{ 
//Add Function 
} else 
if($_POST['function'] == 'Delete') 
{ 
//DeleteFunction 
} else 
if($_POST['function'] == 'Edit') 
{ 
//EditFunction 
} 

... 
?> 
0
私は単一のフォームを作成し、次にスイッチにスクリプトを使用することをお勧めし

それはモードとデータの間に必要なフィールドを埋めます。

フォームへのリンクの場合。 (私の例ではthisfile.php自体)形式のファイルの場合

/* To create a New Record */ 
<a href="thisfile.php?action=new">New Record</a> 
/* To delete an Existing Record */ 
<a href="thisfile.php?action=delete&record=123">Delete #123</a> 
/* To edit an Existing Record */ 
<a href="thisfile.php?action=edit&record=123">Delete #123</a> 

<?php 
if(isset($_GET['action'])){ 
    switch(strtolower($_GET['action'])){ 
    case 'delete' : 
     /* Perform Deletion Action Here */ 
     break; 
    case 'edit' : 
     if(isset($_POST['save'])){ 
     /* Perform Modification of Existing Values Here */ 
     }else{ 
     /* Perform Query for Existing Values Here */ 
     } 
     break; 
    case 'new' : 
     if(isset($_POST['save'])){ 
     /* Perform Creation of New Record Here */ 
     }else{ 
     /* Set Default Values */ 
     $navigation = ''; 
     $content = ''; 
     } 
     break; 
    } 
} 
?> 
<div class="containerholder"> 
    <div class="container"> 
    <div id="contain"> 
     <form method="post" id="customForm"> 
     <?php if(isset($_GET['action'])){ ?> 
      <input type="hidden" name="action" value="<?php echo $_GET['action']; ?>" /> 
     <?php } ?> 
     <?php if(isset($_GET['record'])){ ?> 
      <input type="hidden" name="record" value="<?php echo $_GET['record']; ?>" /> 
     <?php } ?> 
     <div> 
      <label for="name">Navigation</label> 
      <input id="name" name="navigation" type="text" value="<?php echo $navigation ?>" /> 
     </div> 
     <div> 
      <label for="message">Content</label> 
      <textarea id="content" name="content" cols="" rows="" ><?php echo $content ?></textarea> 
     </div> 
     <div> 
      <input id="send" name="send" type="submit" value="Save and update" /> 
     </div> 
     </form> 
    </div> 
    </div> 
</div> 
関連する問題