2016-12-30 7 views
0

私はかなりの場所を見てきて、私が必要とする本当に良い例を見つけることができません。フォームをポップアップする必要があるボタンがあります。私は過去に入力=非表示の名前を使ってこれを行ってきました。しかし、私は変数の代わりにif文を使用しようとしています。あなたが私が間違っていることを見つけ出すのを助けてくれることを願って、私が持っているコードをあなたに与えます。私は本当にいくつかのために隠された名前を使用していることがわかりますが、私は本当にそれをifステートメントに組み込む方法を知らない。フォームを非表示にしてifステートメントを使用する

if($row[status] == 0) { print "<input type='image' src='images/rework-ticket.png' alt='Rework' value='Rework' name='button' style='height:50px; width:50px; '>"; } 
      elseif($row[status] == "Rework (In Progress)") { print "<img src='images/rework-ticket.png' alt='Rework' style='height:50px; width:50px; '>"; } 


      print "<td align='center'>"; 
      print "<form method='post' action='test2.php'>";    
      print "<input type='image' src='images/rework-ticket.png' alt='Add Rework Ticket' value='Enter Employee ID' name='button' style='height:50px; width:50px; '>"; 
      print "<input type='hidden' name='proceed_to_rework' value='true'>"; 
      print "<input type='hidden' name='invoice_number' value='$row[invoice_number]'>"; 
      print "<input type='hidden' name='last_name' value='$row[last_name]'>"; 
      print "<input type='hidden' name='status' value='$status'>"; 
      print "Status:"; 
      print "<td><select name='status' size='1'>"; 
      if($status != NULL) { print "<option value='$status'>$status</option>"; } 
      if($status != "Parts Prep (In Progress)") { echo "<option value='Parts Prep (In Progress)'>Parts Prep (In Progress)</option>"; } 
      if($status != "Parts Prep (Complete)") { echo "<option value='Parts Prep (Complete)'>Parts Prep (Complete)</option>"; }  
      if($status != "Assembly (In Progress)") { echo "<option value='Assembly (In Progress)'>Assembly (In Progress)</option>"; } 
      if($status != "Assembly (Complete)") { echo "<option value='Assembly (Complete)'>Assembly (Complete)</option>"; }  
      if($status != "Finish (In Progress)") { echo "<option value='Finish (In Progress)'>Finish (In Progress)</option>"; } 
      if($status != "Finish (Complete)") { echo "<option value='Finish (Complete)'>Finish (Complete)</option>"; }  
      if($status != "Plumbing (In Progress)") { echo "<option value='Plumbing (In Progress)'>Plumbing (In Progress)</option>"; } 
      if($status != "Plumbing (Complete)") { echo "<option value='Plumbing (Complete)'>Plumbing (Complete)</option>"; } 
      print "</form>"; 
      print "</td>"; 

私はこのコードを修正するだけではなく、この質問を改善する方法についてのコメントを本当に感謝しています。

答えて

0

ifステートメントは、次のように使用できます。

<?php if (condition): ?> 

    <!-- HTML here --> 
    <?php if (anotherCondition): ?> 
     <!-- HTML here --> 
    <?php endif; ?> 
    <!-- HTML again --> 

    <?php if (anotherCondition): ?> 
     <!-- HTML here --> 
    <?php endif; ?> 
    <!-- HTML again --> 

<?php endif; ?> 

このようにすれば、それほど多くのprint文を使用する必要はありません。

php docsの例を読んでください。

0

ifステートメントの代わりに、配列を使用します。これは、今後オプションを追加したい場合にも役立ちます。また、HTMLコードを1行ずつ出力する代わりに、1つのecho文を使用してみてください。

あなたはPOSTからのステータス値を取得したい場合は、$row[status]を書くときに定数を使用しているので注意してください他のすべて

$status = $_POST['status'];を使用しています。私はそれを変更していませんが、代わりに$row[$status]が必要な場合はの前に$を追加してください。

if($row[status] == 0) { 
    echo ' 
     <button type="button" id="Rework" > 
      <img src="images/rework-ticket.png" alt="Rework" style="height:50px; width:50px; "></img> 
     </button>'; 
} elseif($row[status] == "Rework (In Progress)") { 
    echo ' 
     <button type="button" id="Rework" > 
      <img src="images/rework-ticket.png" alt="Rework" style="height:50px; width:50px; "></img> 
     </button>'; 
} 

echo " 
    <td align='center'> 
    <form method='post' action='test2.php'>    
    <input type='image' src='images/rework-ticket.png' alt='Add Rework Ticket' value='Enter Employee ID' name='button' style='height:50px; width:50px; '> 
    <input type='hidden' name='proceed_to_rework' value='true'> 
    <input type='hidden' name='invoice_number' value='{$row[invoice_number]}'> 
    <input type='hidden' name='last_name' value='{$row[last_name]}'> 
    <input type='hidden' name='status' value='{$status}'> 
    Status: 
    <td><select name='status' size='1'> 
"; 

$statusOptions = array(
    NULL, 
    "Parts Prep (In Progress)", 
    "Parts Prep (Complete)", 
    "Assembly (In Progress)", 
    "Assembly (Complete)", 
    "Finish (In Progress)", 
    "Finish (Complete)", 
    "Plumbing (In Progress)", 
    "Plumbing (Complete)" 
); 

foreach($statusOptions as $option){ 
    if($status != $option){ 
     echo "<option value='{$option}'>{$option}</option>"; 
    } 
} 
echo '</select>'; 

echo "</form>"; 
echo "</td>"; 
echo ' 
    <script type="text/javascript"> 
    function showDocument(){ 
     document.getElementById("ReworkForm").style.visibility="visible"; 
    } 

    window.onload = function(){ 
     document.getElementById("ReworkForm").style.visibility="hidden"; 
     document.getElementById("Rework").addEventListener("click", showDocument); 
    }; 
    </script> 
    '; 
+0

これは本当に役立ちます。しかし、私はまだ、リワークボタンが押されてからそれを見る必要があるまで、statusOptionsを隠すことができる必要があります。これを行う方法はありますか? – Case

+0

多分あなたは少しのJavaScriptを必要とします。私はリワークのためのボタン($ row [status]を持つ最初の部分)と最後にjavascriptコードを追加して答えを編集しました。 – RelaxedArcher

関連する問題