J'ai un tableau dans une page php.
Ce tableau par des requêtes ajax dans un formulaire ajout externe est mise à jour sans recharger la page.
Quand je valide ma page le tableau est envoyé.
Le problème le tableau est transporté en session.
ici action est récupéré par ajax et précise simplement que l'on va ici ajouter une ligne, action égal à 1.
A la fin on stocke cela en session pour lros du prochain appelle afficher le tableau (ce n'ai pas mon script mais celui de mon prédécesseur).
Pour afficher le tableau
Code : Tout sélectionner
if(isset($_GET['ligne']) || isset($_GET['action'])){
switch ($_GET['action']) {
case 1:
$delai_s = null;
if($_GET['delai_s'] != null) {
if($date = DateTime::createFromFormat('Y-m-d',$_GET['delai_s']))
$delai_s = $date->format('d/m/Y');
}
$besoin = new Besoin('',$_GET['num_item'],'',$_GET['type_produit'],$_GET['ref_client'],$_GET['ref_valeo'],$_GET['ind'],$_GET['dsg_client'],
$_GET['dsg_valeo'],$_GET['qte'],$_GET['prix_u'],$delai_s,'',$_GET['commentaire'],'','','','');
$tableau[][] = $besoin;
break;
case 2:
$delai_s = null;
if($_GET['delai_s'] != null) {
if($date = DateTime::createFromFormat('Y-m-d',$_GET['delai_s']))
$delai_s = $date->format('d/m/Y');
}
$besoin = new Besoin('','','',$_GET['type_produit'],$_GET['ref_client'],$_GET['ref_valeo'],$_GET['ind'],'',$_GET['dsg_valeo'],$_GET['qte'],'',$delai_s,'',$_GET['commentaire'],'','','','');
$tableau[$_GET['ligne']][] = $besoin;
break;
case 3:
$besoin = $tableau[$_GET['ligne']][$_GET['sous_ligne']];
$besoin -> setType_produit($_GET['type_produit']);
$besoin -> setNum_item($_GET['num_item']);
$besoin -> setRef_client($_GET['ref_client']);
$besoin -> setRef_valeo($_GET['ref_valeo']);
$besoin -> setInd($_GET['ind']);
$besoin -> setDsg_client($_GET['dsg_client']);
$besoin -> setDsg_valeo($_GET['dsg_valeo']);
$besoin -> setQte($_GET['qte']);
$besoin -> setPrix_u($_GET['prix_u']);
$delai_s = null;
if($_GET['delai_s'] != null) {
if($date = DateTime::createFromFormat('Y-m-d',$_GET['delai_s']))
$delai_s = $date->format('d/m/Y');
}
$besoin -> setDelai_s($delai_s);
$besoin -> setCommentaire($_GET['commentaire']);
break;
case 4:
$besoin = $tableau[$_GET['ligne']][$_GET['sous_ligne']];
$besoin -> setType_produit($_GET['type_produit']);
$besoin -> setRef_client($_GET['ref_client']);
$besoin -> setRef_valeo($_GET['ref_valeo']);
$besoin -> setInd($_GET['ind']);
$besoin -> setDsg_valeo($_GET['dsg_valeo']);
$besoin -> setQte($_GET['qte']);
$delai_s = null;
if($_GET['delai_s'] != null) {
if($date = DateTime::createFromFormat('Y-m-d',$_GET['delai_s']))
$delai_s = $date->format('d/m/Y');
}
$besoin -> setDelai_s($delai_s);
$besoin -> setCommentaire($_GET['commentaire']);
break;
case 5:
if($_GET['sous_ligne'] == 0)
unset($tableau[$_GET['ligne']]); // supprimer une ligne du tableau
else
unset($tableau[$_GET['ligne']][$_GET['sous_ligne']]); // supprimer une sous_ligne du tableau
break;
}
}
if(isset($tableau))
$_SESSION['tableau']=serialize($tableau);Code : Tout sélectionner
if(isset($_SESSION['tableau'])){
$tableau = unserialize($_SESSION['tableau']); // Si il a déja été sérialisé alors on le déserialize pour pouvoir utiliser le tableau
}Ma question pour un champion, comment je peux faire, pour ajouter des lignes sans recharger la page, vous me conseillerai du javascript et auriez vous un exemple?
Le formulaire d'ajout n'ai pas dans la même page que le tableau, voici l'architecture :
une page ajt_dl ou on appelle ajout_besoin.php et d'autres formulaire, dans ajt par ajax quand on valide on envoi à la page du tableau les nouvelles données.
Je suppose j'ai super mal expliqué désolé pour ça si vous n'avez pas compris je réexplique merci à vous.