2017-02-21 5 views
0

私は、データベースからインポートされたクライアントとその詳細のリストを作成しています。すべての行の最後には、そのクライアントに関するすべての情報が編集されるフォームに表示される「編集」ボタンがあります。<form>と</form> phpで印刷されたタグが正しく整列しない

クライアントリストをデータベースからインポートされたように、私はそれが適切にリストを出力しfollowing-

while($row = mysqli_fetch_array($result)) 
     { 
      echo" <tr id=".$count.">"; 
      echo"  <form method='post' id='edit_form' action='search_client_details.php?edit=true'>"; 
      echo"  <td><input type='checkbox' id='chkStatus' name='customer' class='chkbox' value='".$row['client_id']."'></td>"; 
      echo"  <td>".$row['client_name']."</td>"; 
      echo"  <td>".$row['client_address']."</td>"; 
      echo"  <td>".$row['client_type']."</td>"; 
      echo"  <td><input type='submit' name='submit' id='edit_form_submit' value='Edit' class='btn btn-success' style='background-color:#27ae60; color:#fff'></td>"; 
      echo"  </form>"; 
      echo" </tr>"; 

      $count++; 
     } 

として、PHPでフォームを書きました。しかし、編集ボタンを押しても機能しません。行は、次にthis-

<tr id="1" style="display: table-row;">  
<form method="post" id="edit_form" action="search_client_details.php?edit=true"></form>  
<td><input type="checkbox" id="chkStatus" name="customer" class="chkbox" value="1"></td>   
<td>Name</td>  
<td>address</td>   
<td>type</td>  
<td><input type="submit" name="submit" id="edit_form_submit" value="Edit" class="btn btn-success" style="background-color:#27ae60; color:#fff"></td> 

あなたが見ることができるように、フォームタグが最初に印刷され、残りの部分を示した素子を検査。なぜこうなった?私はこれで初心者です、すべての助けに感謝します。

+0

を??もしあなたが特定のレコードを削除したいのであれば、編集ボタンで簡単に達成できます。 –

答えて

2

フォームのタグを開いた直後に<td>要素を作成したために発生しました。 HTMLマークアップが無効です。あなたは全体が送信したい場合は、配列を使用する必要があります

追加

echo "<form method='post' id='edit_form' action='search_client_details.php?edit=true'>"; 
echo"<td><input type='checkbox' id='chkStatus' name='customer' class='chkbox' value='".$row['client_id']."'></td>"; 

あなたは、この場合、第2のラインが無効である別の開口部td素子を有する参照

:この2行を考えてみましょう要素の名前のために。フォームのタグをテーブルの外側に置き、フォームのタグをテーブルの終了タグの後に閉じます。

<form method='post' id='edit_form' action='search_client_details.php?edit=true'> 
<table> 
.... any markup 
<?php 
while($row = mysqli_fetch_array($result)) 
    { 
     echo" <tr id=".$count.">"; 
     echo"  <td><input type='checkbox' id='chkStatus' name='customer[]' class='chkbox' value='".$row['client_id']."'></td>"; 
     echo"  <td>".$row['client_name']."</td>"; 
     echo"  <td>".$row['client_address']."</td>"; 
     echo"  <td>".$row['client_type']."</td>"; 
     echo" </tr>"; 

     $count++; 
    }?> 
</table> 
    <input type='submit' name='submit' id='edit_form_submit' value='Edit' class='btn btn-success' style='background-color:#27ae60; color:#fff'> 
</form> 

その後、サーバ側search_client_details.phpで、あなたはすべてのコードを反復するforループを使用することができます。

for($i = 0,$length = count($_POST['customer']); $i < $length; $i++) { 
    echo $_POST['customer'][$i]; // this will show all the data sending from form 
    // do the operation here 
} 
+0

trの全体に対してformタグを与えたらどうなりますか?または、フォームタグの中にtdタグを入れることは無効ですか? – GradDev

+0

はい、それは無効なマークアップです。しかし、あなたはそうすることができます: '​​

いくつかの要素
' –

+0

しかし、私は行全体を提出する必要があります。 JavaScriptやJQueryでこれを行う方法は? – GradDev

1

あなたはTR属性にフォームを追加傾けます。代わりに、それをあなたは、既存の内の新しいテーブルをcareteと

を形成するためにそれを割り当てることができ、この試してください:あなたはしばらくループ内のフォームタグを置く理由

while($row = mysqli_fetch_array($result)) 
     { 
      echo " <tr id=".$count.">"; 
      echo "  <td><form method='post' id='edit_form' action='search_client_details.php?edit=true'><table><tr>"; 
      echo "  <td><input type='checkbox' id='chkStatus' name='customer' class='chkbox' value='".$row['client_id']."'></td>"; 
      echo "  <td>".$row['client_name']."</td>"; 
      echo "  <td>".$row['client_address']."</td>"; 
      echo "  <td>".$row['client_type']."</td>"; 
      echo "  <td><input type='submit' name='submit' id='edit_form_submit' value='Edit' class='btn btn-success' style='background-color:#27ae60; color:#fff'></td>"; 
      echo "</tr></table></form></td>"; 
      echo "</tr>"; 

      $count++; 
     } 
+0

これは機能しました。今は、各行の幅が異なるため、CSSで表を再設計する必要があります。ありがとう! しかし、私はまだフォームの中にtdまたはtrタグを持つことが許可されていない理由を正確に疑問に思っています... – GradDev

+0

それはコーヒーのようなものです。それらを塩、チリソースと混ぜれば、それは非常に悪い味を得るでしょう!:) –

+0

実際には間違ったhtmlのために、フォームの要素が生成される前にフォームが閉じられます。 –

関連する問題