par
kevin254kl » 08 avr. 2016, 12:43
Bonjour à tous, pourriez vous m'aider s'il vous plaît? c'est au sujet du post
viewtopic.php?f=8&t=275768
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);
Pour afficher le tableau, on affect la session en désérializant
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
}
Le code marche très bien, seul problème le multi fenêtre avec les session que je veux donc éradiquer!
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.
Bonjour à tous, pourriez vous m'aider s'il vous plaît? c'est au sujet du post http://forum.phpfrance.com/viewtopic.php?f=8&t=275768
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]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]
Pour afficher le tableau, on affect la session en désérializant
[code]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
}[/code]
Le code marche très bien, seul problème le multi fenêtre avec les session que je veux donc éradiquer!
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.