[RESOLU] Ajout d'une colonne dans table

Eléphant du PHP | 167 Messages

13 mai 2013, 13:59

Bonjour,

J'ai besoin de votre aide.
Un étudiant participe à une formation qui peut durer plusieurs jours.
Je veux pouvoir grâce à un bouton "+", ajouter dans ma table Etudiant une autre colonne.
Mais quand je clique sur "+", ça m'envoie directement sur formation.php.
<form name="ajout" action="formation.php" method="POST">
<table>
            
            <tr>
            
            <td><label for="nom"><strong>Nom de la formation :</strong></label></td>
            <td><input type="text" name="nom" required title="Entrez ici le nom de la formation"/></td>
        
            </tr>         

 <tr>
            
            <td><label for="date"><strong>Date(s) de formation :</strong></label></td>
            <td><input type="date" name="date"> </td>
             <td> <form>     <input type="submit" value="+"></form></td>
<?php 
include("connexion.php");



$req= "ALTER TABLE Formation ADD date2 DATE";
$result= mysql_query($req);
    
?>
</tr>

Mammouth du PHP | 619 Messages

13 mai 2013, 14:08

Bonjour,

vous ne fermez pas votre premier form d'ou l'action si vous le pouvez séparer les deux form ou par un lien

Eléphant du PHP | 167 Messages

13 mai 2013, 14:20

J'ai fais ceci et ça marche, mais je veux pouvoir créer un autre input juste après l'insertion de la colonne.
<form name="ajout" action="formation.php" method="POST">
            <table>
            
            <tr>
            
            <td><label for="nom"><strong>Nom de la formation :</strong></label></td>
            <td><input type="text" name="nom" required title="Entrez ici le nom de la formation"/></td>
        
            </tr>         

            <tr>
            
            <td><label for="date"><strong>Date(s) de formation :</strong></label></td>
            <td><input type="date" name="date"> </td>
             
            
        </form>
        
<td> <form >     <input type="submit" value="+"></td>
<?php 
include("connexion.php");



$req= "ALTER TABLE Formation ADD date2 DATE";
$result= mysql_query($req);
    
?>
</form>
</tr>
<form name="ajout" action="formation.php" method="POST">
            ....
</form>

Mammouth du PHP | 619 Messages

13 mai 2013, 14:36

Bonjour,

si j'ai bien compris votre demande sur le clique du bouton vous souhaitez ajouter un champ a votre table plus un input directement sur la page ?

pour pouvoir ajouter un input par bouton il faut utilise javascript ( jquery )

Eléphant du PHP | 167 Messages

13 mai 2013, 14:42

C'est exactement ça, je veux que le bouton "+" puisse faire les deux actions que vous avez citées.
Je n'ai jamais utilisé le javascript...

Mammouth du PHP | 619 Messages

13 mai 2013, 15:02

Bonjour,

je vous propose de regarde un peu du cote de jquery

pour ajouter un champ input -> jquery click et jquery apprendto

pour appelle php -> jquery ajax

le temps de voir si quelqu'un a une solution sans javascript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<title>Document sans titre</title>
<script type="text/javascript">

$(document).ready(function () {
	 $("#bAdd").click(function(){
		  if ($('#date2').length <= 0){//on verifie que l'input et pas deja present
			$.ajax({
					  type: "POST",//je dis a ajax d'envoiyer les donnees en post
					  data: {"id" : "1"},  //ici j'envoi les variable en post
					  url: "fichier.php",//le fichier php
					  success:function(data){  
						 if(data==1){//si le fichier nous retourne 1 alors on ajoute le champ
							  $("#bAdd").after('<input type="text" name="date2" id="date2" />'); 

						 }
						 else{//sinon alert erreur
							alert('erreur'); 
						 }
					  }
			  });
		  }
	  });
});
</script>
</head>

<body>
<input type="button" id="bAdd" value="Ajouter" />
</body>
</html>
Modifié en dernier par ghost5922 le 13 mai 2013, 15:29, modifié 1 fois.

Eléphant du PHP | 167 Messages

13 mai 2013, 15:27

Merci beaucoup ghost5922 !
Question bête.
Ce code, je le met dans un autre fichier ou dans le même ?

Mammouth du PHP | 619 Messages

13 mai 2013, 15:31

Bonjour,

dans le head tu ajoutes
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">

$(document).ready(function () {
	 $("#bAdd").click(function(){
		  if ($('#date2').length <= 0){//on verifie que l'input et pas deja present
			$.ajax({
					  type: "POST",//je dis a ajax d'envoiyer les donnees en post
					  data: {"id" : "1"},  //ici j'envoi les variable en post
					  url: "fichier.php",//le fichier php
					  success:function(data){  
						 if(data==1){//si le fichier nous retourne 1 alors on ajoute le champ
							  $("#bAdd").after('<input type="text" name="date2" id="date2" />'); 

						 }
						 else{//sinon alert erreur
							alert('erreur'); 
						 }
					  }
			  });
		  }
	  });
});
</script>
oublie pas de modifier le nom du fichier et d'autre information

dans ton formulaire tu mets ce bouton
<input type="button" id="bAdd" value="Ajouter" />




dans ton php actuelle tu fais un echo "1"; si le champ c'est bien ajoute :)

et quand tu vas récupéré les données fait bien un isset($_POST['date2'])

Eléphant du PHP | 167 Messages

13 mai 2013, 15:43

J'ai fais ceci, est-ce que c'est bon ?
Sachant que moi j'ai tout dans le même fichier.
<html>
<body>
<head>
[javascript]
<script src="http://ajax.googleapis.com/ajax/libs/jq ... "></script>
<script type="text/javascript">

$(document).ready(function () {
$("#bAdd").click(function(){
if ($('#date2').length <= 0){//on verifie que l'input et pas deja present
$.ajax({
type: "POST",//je dis a ajax d'envoiyer les donnees en post
data: {"id" : "1"}, //ici j'envoi les variable en post
url: "formation.php",//le fichier php
success:function(data){
if(data==1){//si le fichier nous retourne 1 alors on ajoute le champ
$("#bAdd").after('<input type="text" name="date2" id="date2" />');

}
else{//sinon alert erreur
alert('erreur');
}
}
});
}
});
});
</script>
[/javascript]
</head>
 <form name="ajout" action="formation.php" method="POST">
            <table>
            
            <tr>
            
            <td><label for="nom"><strong>Nom de la formation :</strong></label></td>
            <td><input type="text" name="nom" required title="Entrez ici le nom de la formation"/></td>
        
            </tr>         

            <tr>
            
            <td><label for="date"><strong>Date(s) de formation :</strong></label></td>
            <td><input type="date" name="date"> </td>
             
            
        
        
<td> <input type="button" id="bAdd" value="Ajouter" /></td>
<?php 
include("connexion.php");



$req= "ALTER TABLE Formation ADD date2 DATE";
$result= mysql_query($req);
    if($result) echo "1";
    else echo "0";
?>
             
</form>

</tr>

Mammouth du PHP | 619 Messages

13 mai 2013, 15:57

Bonjour,

mets ton php dans un autre fichier :)

Eléphant du PHP | 167 Messages

13 mai 2013, 16:10

Ça marche !!
Ça m'affiche bien le input juste à côté de "Ajouter", je voudrais que ça m'affiche le input de la même façon que le premier...c'est-à-dire à la ligne suivante

Mammouth du PHP | 619 Messages

13 mai 2013, 16:21

Bonjour,

essaie cela
 <form name="ajout" action="formation.php" method="POST">
            <table>
            
            <tr>
            
            <td><label for="nom"><strong>Nom de la formation :</strong></label></td>
            <td><input type="text" name="nom" required title="Entrez ici le nom de la formation"/></td>
        
            </tr>         

            <tr>
            
            <td><label for="date"><strong>Date(s) de formation :</strong></label></td>
            <td><input type="date" name="date"> </td>
            
            </tr>
            
            <tr id="trAdd">  
            <td> <input type="button" id="bAdd" value="Ajouter" /></td>
            
            </tr>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<title>Document sans titre</title>
<script type="text/javascript">

$(document).ready(function () {
	 $("#bAdd").click(function(){
		  if ($('#date2').length <= 0){//on verifie que l'input et pas deja present
			$.ajax({
					  type: "POST",//je dis a ajax d'envoiyer les donnees en post
					  data: {"id" : "1"},  //ici j'envoi les variable en post
					  url: "fichier.php",//le fichier php
					  success:function(data){  
						 if(data==1){//si le fichier nous retourne 1 alors on ajoute le champ
							  $("#trAdd").after('<tr><td><label for="date"><strong>Date 2 :</strong></label></td><td><input type="text" name="date2" id="date2" /></td></tr>'); 

						 }
						 else{//sinon alert erreur
							alert('erreur'); 
						 }
					  }
			  });
		  }
	  });
});
</script>
</head>

Eléphant du PHP | 167 Messages

13 mai 2013, 16:37

Parfait ! Ça marche bien !
Encore une fois, merci beaucoup ghost5922 !

Mammouth du PHP | 619 Messages

13 mai 2013, 16:42

Bonjour,

pas de souci si ton problème est réglé merci de change le statut en résolut