2016-10-04 1 views
2

Ich möchte in Datei crud.php, aber es Form von jquery clone erstellen, die Name mit Array in Array erstellen. Bitte beachten Sie das Schnipsel!Post-Name mit Array von Klon

$(document).ready(function() { 
 
    addBarang(); 
 
}); 
 

 
function addBarang() { 
 
    var new_barang = $(".hidden_input").find(".barang_in").clone().addClass("barang_in_clone"); 
 
    $(".target_clone:last").append(new_barang); 
 
} 
 

 
$('body').on('click', '.btn_kurangi_barang', function() { 
 
    $(this).closest('.barang_in_clone').remove(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<body> 
 
    
 
    <div class="hidden_input" style="display: none"> 
 
    <div class="barang_in"> 
 
     <label class="col-md-4 control-label">Model : </label><input type='text' name='model[]'> 
 
     <br> 
 
     <label class="col-md-4 control-label">Kode Hanca : </label> 
 
         <input type="checkbox" name="aksesoris[]" value="ziper">Ziper 
 
         <input type="checkbox" name="aksesoris[]" value="kancing">Kancing 
 
         <input type="checkbox" name="aksesoris[]" value="size">Label Size 
 
         <input type="checkbox" name="aksesoris[]" value="kain_keras">Kain Keras 
 
         <input type="checkbox" name="aksesoris[]" value="karet">Karet 
 
         <input type="checkbox" name="aksesoris[]" value="logo">Label Logo 
 
     <br> 
 
     <button onclick="addBarang()" type="button">add</button> 
 
     <button type="button" class='btn_kurangi_barang'> Remove</button> 
 
    </div> 
 
    </div> 
 
    <div class='target_clone'> 
 
    </div> 
 

 
</body>

und diese PHP-Datei:

<?php 
 
include 'conection.php'; 
 

 
$model = $_POST['model']; 
 
$count_model = count($model); 
 
$acc = implode(',' , $_POST['aksesoris']); 
 

 
for($i=0; $i < $count_model; $i++){ 
 
$qry_insert = $db->query("INSERT INTO product SET model='$model[$i]', aksesoris='$acc[$i]' "); 
 
} 
 

 

 
?>

aber das Ergebnis nicht ich will. Das Ergebnis zeigt dieselben Daten von $_POST['aksesoris']

Wie löst man es?

+1

Ich möchte nur, dass Sie wissen, dass Sie anfällig für SQL-Injektion sind: http://StackOverflow.com/Questions/2200256/How-Can-Ivoid-SQL-Injection-attacks – Thomas

+0

Danke Thomas für Ihren Vorschlag, seine sehr hilfreich. Würdest du mir zeigen, wie man Aussagen wie Code oben ohne verwundbar erstellt? –

+0

Suchen Sie nach 'prepared statement', um sich selbst vor' SQL Injection' zu schützen –

Antwort

1

Um Ihre Eingabe Elementdaten unterscheiden Sie haben einen Teil zu ändern (die kommentiert werden): -

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<body> 
    <form id = "submit_data" action="<?=$_SERVER['PHP_SELF'];?>" method="post"><!-- add one form so that you can submit --> 
     <div class="hidden_input"><!-- remove the style --> 
      <div class="barang_in"> 
       <label class="col-md-4 control-label">Model : </label><input type='text' name='new_model[]'> 
       <br> 
       <label class="col-md-4 control-label">Kode Hanca : </label> 
       <input type="checkbox" name="model[0][]" value="ziper">Ziper 
       <input type="checkbox" name="model[0][]" value="kancing">Kancing 
       <input type="checkbox" name="model[0][]" value="size">Label Size 
       <input type="checkbox" name="model[0][]" value="kain_keras">Kain Keras 
       <input type="checkbox" name="model[0][]" value="karet">Karet 
       <input type="checkbox" name="model[0][]" value="logo">Label Logo 
       <br> 
      </div> 
     </div> 
     <div class='target_clone'> 
     </div> 
     <button onclick="addBarang()" type="button">add</button><!-- put add button outside of the div --> 
     <button type="button" class='btn_kurangi_barang'> Remove</button><!-- put remove button outside of the div --> 
     <input type = "submit" value = "Submit"> 
    </form> 
</body> 

<script type="text/javascript"> 
    var i = 1; // add a counter 
// remove body reday clone function call 
    function addBarang() { 

     var new_barang = $(".hidden_input").find(".barang_in").clone().addClass("barang_in_clone"); // clone the entire div 
     new_barang.find('input').each(function() { 
      this.name = this.name.replace('[0]', '[' + i + ']'); // change the check box index so that you can distinguish 
     }); 
     $(".target_clone:last").append(new_barang); // appen clone to div 
     i++; 
    } 

    $('body').on('click', '.btn_kurangi_barang', function() { 
     $('.barang_in_clone').last().remove(); 
    }); 

</script> 

<?php 
include 'conection.php'; 
if(isset($_POST) && count($_POST)>0){ 
    $new_model = $_POST['new_model']; 
    $count = count($new_model); 
    for($i = 0; $i < $count; $i++){ 
     echo $new_model[$i] . " - " . implode(",", $_POST['model'][$i]); 
    } 
} 
?> 

Hinweis: -

1.look für prepared statement sich von SQL Injection zu verhindern.

+0

@wawanSetiyawan Überprüfen Sie meine bearbeitete Antwort. Benutze es. –

+0

@wawanSetiyawan Entfernen Sie alle Ihre oberen Kommentare vor meinem Kommentar. sie sind unnötig –

+0

yeah, danke Anant. Ich habe vergessen, dass der Implod Daten empfangen muss, wenn nicht, wird es einen Fehler anzeigen. –