I have a huge form which has a table in it. I add lines of this table with jQuery when the user press some button and try to catch all theses values in PHP
But I can't get other values than the first line of the table!
Got
Undefined index: categorie#2
when I'm trying to get it by $_POST['categorie#2']
HTML looks like this:
<form> ...[some working inputs] <table id="matos" class="table table-responsive synthese"> <thead> <tr> <th>Matériel</th> <th>Fournisseur</th> <th>Numéro de série</th> <th>Catégorie</th> <th>Description</th> <th>Date d'achat</th> <th>Etat</th> </tr> </thead> <tbody> <tr class="" id="ligne#1"> <td><input type="text" name="materiel#1" id="materiel#1" class="form-control" value=""></td> <td> <select name="fournisseur#1" id="fournisseur#1" class="form-control" value=""> <?php $list = listing_fournisseurs(); foreach ($list as $key => $value) { echo '<option value='.$key.'>'.$value.'</option>'; } ?> </select> </td> <td><input type="text" name="num_serie#1" id="num_serie#1" class="form-control" value=""></td> <td> <select name="categorie#1" id="categorie#1" class="form-control" value=""> <?php $list = listing_categories(); foreach ($list as $key => $value) { echo ' <option value='.$key.'>'.$value.'</option>'; } ?> </select> </td> <td><input type="text" name="description_materiel#1" id="description_materiel#1" class="form-control" value=""></td> <td><input type="text" name="buy_date#1" id="buy_date#1" class="date form-control" value=""></td> <td> <select name="etat#1" id="etat#1" class="form-control" value=""> <?php $list = listing_etats(); foreach ($list as $key => $value) { echo ' <option value='.$key.'>'.$value.'</option>'; } ?> </select> </td> </tr> </tbody> </table> How I add a line in jQuery?
var num= parseInt($('#matos tr:last').prop("id").split('#')[1])+1; $('#matos tr:last').after('<tr id="ligne#'+num+'">'+ '<td><input type="text" name="materiel#'+num+'" id="materiel#'+num+'" class="form-control" value=""></td>'+ '<td><select name="fournisseur#'+num+'" id="fournisseur#'+num+'" class="form-control" value="">'+ opt_fournisseurs+ '</select></td>'+ '<td><input type="text" name="num_serie#'+num+'" id="num_serie#'+num+'" class="form-control" value=""></td>'+ '<td><select name="categorie#'+num+'" id="categorie#'+num+'" class="form-control" value="">'+ opt_categories+ '</select></td><td><input type="text" name="description_materiel#'+num+'" id="description_materiel#'+num+'" class="form-control" value=""></td>'+ '<td><input type="text" name="buy_date#'+num+'" id="buy_date#'+num+'" class="date form-control" value=""></td>'+ '<td><select name="etat#1" id="etat#1" class="form-control" value="">'+ opt_states+ '</select></td></tr>'); $('#nbLignes').val(num); And well in PHP I'm trying:
$_POST['materiel#2'] // doesn't work $_POST['materiel#1'] // works ! ( because first line ! ) I've read some issues that form don't work if they're not into table tr td ... But in my case they are ... What's wrong ?
var_dump()) the values in$_POST? Do you see any other categories or values that aren't in there by default?Undefined index: [nameOfInput]#NumberOfLinefor other lines... As if data won't sendcategorie#1,materiel#2) etc. It just turns everything with that name in to an array with indices. Take a look at this answer for a clear usage example: stackoverflow.com/a/1010970/1294864