[RESOLU] Incrémenter une colonne

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Incrémenter une colonne

Re: Incrémenter une colonne

par NUAGE » 23 mai 2013, 14:23

Re,

Merci ça marche nikel !
Résolu !

Re: Incrémenter une colonne

par ghost5922 » 23 mai 2013, 14:09

 $("#bAdd").click(function(){
                 
                       $("#trAdd").after('<tr><td><label for="date"><strong>Date  :</strong></label></td><td><input type="text" name="date[]" id="date" /></td></tr>');
                       $( "#date" ).datepicker();
                  
                

          });
attention de bien mettre date[] sinon il va remplacer le champ par la dernier valeur a chaque fois

Re: Incrémenter une colonne

par NUAGE » 23 mai 2013, 13:49

Dernière question.

Comment je peux modifier ceci pour qu'à chaque fois qu'appuie sur "Ajouter" ça me crée un input car pour le moment ça me le fait qu'une fois ?

[javascript] $("#bAdd").click(function(){
if ($('#date').length <= 0){//on verifie que l'input et pas deja present
$("#trAdd").after('<tr><td><label for="date"><strong>Date :</strong></label></td><td><input type="text" name="date" id="date" /></td></tr>');
$( "#date" ).datepicker();
}


});[/javascript]

Re: Incrémenter une colonne

par ghost5922 » 23 mai 2013, 13:30

Ok mais pourquoi as tu besoin de deux champ alors ?

tu fais une table formation : id,nom,etc
une table dateformation : id,id_form,date

et chaque date pour la formation sera dans dateformation

Re: Incrémenter une colonne

par NUAGE » 23 mai 2013, 13:03

Re,

En fait, ça ne peut pas être des blocs de dates, sous la forme de ... à ....
Par exemple la durée de la formation est de 10 jours, et bien je peux très bien avoir une date par mois par exemple... Je devrais avoir pour cela 10 input

Re: Incrémenter une colonne

par ghost5922 » 23 mai 2013, 12:29

Non en ajax tu utilises un script pour ajouter des champs en plus

pour avoir plusieurs dates

Formation 1 date prevu
15/05/2013 au 19/05/2013
20/05/2013 au 23/05/2013

tu coup au lieu d'ajoute un champ tu en ajoute deux

par defaut dans ton formulaire tu vas avoir

<input type="text" name="date[]" id="date" />
<input type="text" name="date2[]" id="date2" />

puis ton bouton pour ajouter une date
celle-ci va donc ajouter deux nouveau champ

avec les mêmes nom date[] et date2[]

et avec le foreach tu vas ajouter les dates et autant que tu le veux pour cette formation

Re: Incrémenter une colonne

par NUAGE » 23 mai 2013, 12:20

Re,

Je suis désolé mais je suis trop bête car je ne comprend pas pourquoi un for puisque je ne peux finalement en mettre que 2 des dates...

Re: Incrémenter une colonne

par ghost5922 » 23 mai 2013, 12:08

Re,

Bon déjà faut bien avoir tes input nommé date[] et date2[]

après quand tu récupérés tes donnes

tu ajoutes les informations en bdd ?

juste apres les avoir ajouter sans aucune date tu utilises
$id_form=mysql_insert_id();
puis tu fais un
$i=0;
foreach($_POST['date'] as $date){
    if(isset($_POST['date2'][$i]) and !empty($_POST['date2'][$i])){$date2=$_POST['date2'][$i];}else{$date2='';}
    $req1="insert into dateformation set `id_form`='$id_form', `date`='$date', `date2`='$date2'";
    $i++;
}
en gros faut que tu améliore le code

Re: Incrémenter une colonne

par NUAGE » 23 mai 2013, 11:56

Re,

Ça me met cette notification
Notice: Undefined offset: 1 in C:\

Pour cette ligne
$req1="insert into dateformation set `id_form`=LAST_INSERT_ID(), `date`='$date[1]', `date2`='$date2[1]'";

Et j'ai pas compris pour la boucle je la met où ?

Re: Incrémenter une colonne

par ghost5922 » 23 mai 2013, 11:31

Re,

Il faut que quand tu ajoutes une date ils ont tous le même nom

<input type="text" name="date[]" id="date" />
<input type="text" name="date2[]" id="date2" />

a chaque ajoute de date tu ajoute c'est deux champ

et quand tu valides tu parcours ton tableau de date au moment de l'insert et tu ajoutes

insert into dateformation set id_form='x' `date`='$date[0]', date2='$date2[0]'
insert into dateformation set id_form='x' `date`='$date[1]', date2='$date2[1]'

dans la boucle il aura juste une ligne mais un exemple

Re: Incrémenter une colonne

par NUAGE » 23 mai 2013, 11:16

Bonjour,

Au niveau du formulaire, je ne sais pas comment l'afficher, j'arrive pour les 2 premières dates, mais si je veux trois dates ?

Re: Incrémenter une colonne

par Hélène » 23 mai 2013, 11:01

salut,
c'est pas normal ce que tu veux faire, il faut que tu crées une table avec un id_date en clé primaire...c'est une question de ligne pas de colonne avec un INSERT INTO pour chaque nouvelle date!

Re: Incrémenter une colonne

par NUAGE » 23 mai 2013, 10:54

Avec ceci ça me crée qu'une date de plus...

[javascript] $("#bAdd").click(function(){
if ($('#date3').length <= 0){
$("#trAdd").after('<tr><td><label for="date"><strong>Date 3 :</strong></label></td><td><input type="text" name="date3" id="date3" /></td></tr>');
$( "#date3" ).datepicker();
}

});[/javascript]

Re: Incrémenter une colonne

par ghost5922 » 23 mai 2013, 10:32

Re,

Creer une autre table

dateformation id,id_formation,date,date2

tu pourras mettre autant de date que tu veux

Re: Incrémenter une colonne

par NUAGE » 23 mai 2013, 10:29

Re,

Parce qu'en fait, je ne sais pas combien de date il y a à l'avance du coup comment je fais ?