2014-07-21 10 views
5

Ho un progetto simile a questo esempio.La forma nidificata è vietata? Allora come si fa?

<?php 

if (isset($_POST['delete'])) { 
    // Delete using id 
} 

if (isset($_POST['deleteAll'])) { 
    // Delete using array name check 
} 

?> 

<form method="POST" action="index.php" onsubmit="return validate()"> // First form 
    <?php foreach ($rows as $row) : ?> 
     <form method="POST" action="index.php" onsubmit="return validate()> // Second form 
      <input type="checkbox" name="check[]" value="<?php $row['id'] ?>" /> 
      <input type="hidden" name="id" value="<?php $row['id'] ?>" /> 
      <input type="submit" name="delete" value="Delete" /> 
     </form> 
    <?php endforeach ?> 

    <input type="submit" name="deleteAll" value="Delete checked items" /> 
</form> 

onsubmit utilizzato per utilizzare la funzione di confermare in javascript.

Ho già pensato a questo e solo posso pensare di utilizzare nested-form.

second form e submit delete utilizzato per delete utilizzando ID.

first form e submit deleteAll utilizzato per delete tutti gli elementi selezionati.

se delete second form,

e clicco delete il id sarà il last index di foreach.

Quindi inserisco lo delete l'ultimo row, non lo row volevo delete.

ho già pensando e ha trovato nessun indizio,

spero che qualcuno qui può dare un indizio.

risposta

6

Non provare a farlo in quel modo. Lo stai rendendo ancora più complicato. Un singolo modulo dovrebbe essere sufficiente.

<form method="POST" action="index.php" onsubmit="return validate()"> 
    <?php foreach ($rows as $row) : ?> 
     <input type="checkbox" name="check[]" value="<?php echo $row['id'] ?>" /> 
     <button name="delete" value="<?php echo $row['id']; ?>">Delete</button><br/> 
    <?php endforeach ?> 
    <input type="submit" name="deleteAll" value="Delete checked items" /> 
</form> 

PHP

// handle single delete 
if(isset($_POST['delete'])) { 
    $id = $_POST['delete']; // individual ID 
} 

// handle mulitple selected checkboxes 
if(isset($_POST['deleteAll'])) { 
    $ids = $_POST['check']; 
} 
+0

Il tuo modo è più bello. Forse sto pensando a molto, proverò per prima cosa a modo tuo. – Scramble

Problemi correlati