[php] recharger une page avec l'id
FaRa31
Messages postés
56
Date d'inscription
Statut
Membre
Dernière intervention
-
FaRa31 Messages postés 56 Date d'inscription Statut Membre Dernière intervention -
FaRa31 Messages postés 56 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous!
Alors voila je débute en php et je me retrouve face à un petit problème :
j'ai une page où se trouve à gauche une liste de services et à droite une fenetre de recherche de personnes.
En cliquant sur un bouton radio d'un service à gauche, on a la liste des personnes affectées à ce service sur la droite, et l'utilisateur peut rajouter une personne au service en recherchant la personne puis cliquer sur "valider".
Alors voila mon problème ce n'est pas le fait de rajouter cette personne ça marche bien, mais en fait de recharger la page avec l'id je pense pour qu'une fois que l'utilisateur clique sur valider ça apparait directement sur l'écran, et pas recliquer sur le bouton radio pour voir si la personne a été ajoutée.
Voila j'espère avoir été clair dans mes propos ^^
merci d'avance!
Alors voila je débute en php et je me retrouve face à un petit problème :
j'ai une page où se trouve à gauche une liste de services et à droite une fenetre de recherche de personnes.
En cliquant sur un bouton radio d'un service à gauche, on a la liste des personnes affectées à ce service sur la droite, et l'utilisateur peut rajouter une personne au service en recherchant la personne puis cliquer sur "valider".
Alors voila mon problème ce n'est pas le fait de rajouter cette personne ça marche bien, mais en fait de recharger la page avec l'id je pense pour qu'une fois que l'utilisateur clique sur valider ça apparait directement sur l'écran, et pas recliquer sur le bouton radio pour voir si la personne a été ajoutée.
Voila j'espère avoir été clair dans mes propos ^^
merci d'avance!
A voir également:
- [php] recharger une page avec l'id
- Supprimer une page word - Guide
- Imprimer tableau excel sur une page - Guide
- Id telephone - Guide
- Créer une page facebook - Guide
- Comment traduire une page - Guide
10 réponses
Bonjour,
A quoi ressemble ton formulaire pour l'ajout d'une personne ? Fait-il appel à la même page que celle qui affiche la liste des personnes ?
Xavier
A quoi ressemble ton formulaire pour l'ajout d'une personne ? Fait-il appel à la même page que celle qui affiche la liste des personnes ?
Xavier
OK, je comprends mieux.
Plutôt que de recharger toute la page, et ensuite de préselectionner un bouton radio, pourquoi ne pas recharger uniquement le cadre de droite ? (J'ai cru comprendre que tu utilisais des frames)
Peux-tu me mettre grosso-modo le code html de ta petite fenêtre ? C'est dans ce code que tu places ton window.parent.location.reload() ?
Plutôt que de recharger toute la page, et ensuite de préselectionner un bouton radio, pourquoi ne pas recharger uniquement le cadre de droite ? (J'ai cru comprendre que tu utilisais des frames)
Peux-tu me mettre grosso-modo le code html de ta petite fenêtre ? C'est dans ce code que tu places ton window.parent.location.reload() ?
OK.
Et si tu remplaces ça par window.opener.location.reload() ?
Ou sinon, window.parent.{nomFrame}.location.reload()
ou encore window.parent.document.getElementById("{idFrame}").location.reload()
en remplaçant {nomFrame} par le nom de la frame de droite (s'il n'y en a pas, rajoute name="contenu", par exemple, dans son code)
et {idFrame} par l'id de cette même frame (idem, s'il n'y en a pas de défini, fais-le)
J'ai la flemme de tester (désolé...), c'est pourquoi je te fournis trois possibilité, je ne suis pas sûr qu'elles fonctionnent toutes comme tu le souhaites.
Si ça ne marche pas, je me pencherai un peu plus sur le problème :)
Xavier
Et si tu remplaces ça par window.opener.location.reload() ?
Ou sinon, window.parent.{nomFrame}.location.reload()
ou encore window.parent.document.getElementById("{idFrame}").location.reload()
en remplaçant {nomFrame} par le nom de la frame de droite (s'il n'y en a pas, rajoute name="contenu", par exemple, dans son code)
et {idFrame} par l'id de cette même frame (idem, s'il n'y en a pas de défini, fais-le)
J'ai la flemme de tester (désolé...), c'est pourquoi je te fournis trois possibilité, je ne suis pas sûr qu'elles fonctionnent toutes comme tu le souhaites.
Si ça ne marche pas, je me pencherai un peu plus sur le problème :)
Xavier
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon, j'ai un peu mieux regardé tout ça...
Voilà un petit test rapide que j'ai fait, en utilisant en fait opener.location.reload()
Page de base :
<html>
<frameset cols="50%,50%">
<frame name="cadre-gauche" src="test_cadre1.htm">
<frame name="cadre-droit" src="test_cadre1.htm">
</frameset>
</html>
Page test_cadre1.htm (cadre de gauche, qui permet d'ouvrir le cadre de droite)
<html>
<body>
<a href="test.htm" target="cadre-droit">truc !</a>
</body>
</html>
Page test.htm (cadre de droite, celui qui va permettre d'ouvrir le pop-up)
<html>
<body>
<a href="test2.htm" target="_BLANK">ouvre_fenêtre</a>
</body>
</html>
Page test2.htm (le pop-up)
<html>
<body>
<button onclick="opener.location.reload(); window.close()">bouton !</button>
</body>
</html>
Voilà. Avec ça, je pense que tu obtiens le fonctionnement que tu recherches.
Xavier
Voilà un petit test rapide que j'ai fait, en utilisant en fait opener.location.reload()
Page de base :
<html>
<frameset cols="50%,50%">
<frame name="cadre-gauche" src="test_cadre1.htm">
<frame name="cadre-droit" src="test_cadre1.htm">
</frameset>
</html>
Page test_cadre1.htm (cadre de gauche, qui permet d'ouvrir le cadre de droite)
<html>
<body>
<a href="test.htm" target="cadre-droit">truc !</a>
</body>
</html>
Page test.htm (cadre de droite, celui qui va permettre d'ouvrir le pop-up)
<html>
<body>
<a href="test2.htm" target="_BLANK">ouvre_fenêtre</a>
</body>
</html>
Page test2.htm (le pop-up)
<html>
<body>
<button onclick="opener.location.reload(); window.close()">bouton !</button>
</body>
</html>
Voilà. Avec ça, je pense que tu obtiens le fonctionnement que tu recherches.
Xavier
le cadre gauche n'ouvre pas le cadre droit, en fait quand je clique sur le bouton radio sur la gauche ça recharge la frame à droite et affiche les informations.
Ensuite à l'aide d'un bouton sur la frame de droite j'ouvre la petite fenêtre pour ajouter une personne.
Mais le opener.location.reload(); window.close() ne passe pas ça me fait toujours page blanche sur le pop-up :'(
Ensuite à l'aide d'un bouton sur la frame de droite j'ouvre la petite fenêtre pour ajouter une personne.
Mais le opener.location.reload(); window.close() ne passe pas ça me fait toujours page blanche sur le pop-up :'(
Tu peux me mettre exactement le code de ta pop-up ?
Je ne comprends pas pourquoi tu aurais cette page blanche...
Je ne comprends pas pourquoi tu aurais cette page blanche...
if (isset($_GET['pb_valider'][0]))
{
for ($i=0;$i<count($tab_pers);$i++)
{
if ($tab_pers[$i] != "")
{
$req_nom = SelectInRow("SELECT NOM_PERS, PRENOM_PERS FROM tb_pers WHERE id_pers = " . $tab_pers[$i], __LINE__);
if (isset($_SESSION['div']))
{
$cpt_diff = count($_SESSION['listepers']['nom']);
$req_service = SelectInRow("SELECT NOM_SERVICE FROM tb_SERVICE, tbl_EMPLOI WHERE id_service = IDX_SERVICE_EMPLOI AND IDX_PERS_EMPLOI = " . $tab_pers[$i], __LINE__);
$req_metier = SelectInRow("SELECT LIB_METIER FROM tbp_METIER, tb_PERS WHERE id_metier = IDX_METIER_PERS AND id_pers = " . $tab_pers[$i], __LINE__);
$_SESSION['listepers']['nom'][$cpt_diff] = f_getvalue($req_nom, "NOM_PERS");
$_SESSION['listepers']['prenom'][$cpt_diff] = f_getvalue($req_service, "PRENOM_PERS");
$_SESSION['listepers']['profession'][$cpt_diff] = f_getvalue($req_metier, "LIB_METIER");
$cpt_diff++;
}
else
$j++;
}
}
}
//Insertion d'une nouvelle personne pour le service sélectionné
$req_insert_pers = "insert into tbl_emploi (idx_pers_emploi,idx_service_emploi) values ('".$id_personne."','".$idSer."')";
$result_insert_pers = Query($req_insert_pers, __LINE__,"req_insert_pers");
echo "<script language='javascript'>window.opener.location.reload(); window.close();</script>";
voilà... la première partie c'est pour l'afficher dans l'interface et après j'insère dans ma base.
{
for ($i=0;$i<count($tab_pers);$i++)
{
if ($tab_pers[$i] != "")
{
$req_nom = SelectInRow("SELECT NOM_PERS, PRENOM_PERS FROM tb_pers WHERE id_pers = " . $tab_pers[$i], __LINE__);
if (isset($_SESSION['div']))
{
$cpt_diff = count($_SESSION['listepers']['nom']);
$req_service = SelectInRow("SELECT NOM_SERVICE FROM tb_SERVICE, tbl_EMPLOI WHERE id_service = IDX_SERVICE_EMPLOI AND IDX_PERS_EMPLOI = " . $tab_pers[$i], __LINE__);
$req_metier = SelectInRow("SELECT LIB_METIER FROM tbp_METIER, tb_PERS WHERE id_metier = IDX_METIER_PERS AND id_pers = " . $tab_pers[$i], __LINE__);
$_SESSION['listepers']['nom'][$cpt_diff] = f_getvalue($req_nom, "NOM_PERS");
$_SESSION['listepers']['prenom'][$cpt_diff] = f_getvalue($req_service, "PRENOM_PERS");
$_SESSION['listepers']['profession'][$cpt_diff] = f_getvalue($req_metier, "LIB_METIER");
$cpt_diff++;
}
else
$j++;
}
}
}
//Insertion d'une nouvelle personne pour le service sélectionné
$req_insert_pers = "insert into tbl_emploi (idx_pers_emploi,idx_service_emploi) values ('".$id_personne."','".$idSer."')";
$result_insert_pers = Query($req_insert_pers, __LINE__,"req_insert_pers");
echo "<script language='javascript'>window.opener.location.reload(); window.close();</script>";
voilà... la première partie c'est pour l'afficher dans l'interface et après j'insère dans ma base.
(bon, déjà, si tu affiches avant d'insérer, tu n'auras pas ton nouvel élément dans l'affichage)
Ensuite, dans ma version qui marche, je n'ai pas utilisé window.opener.location.reload(), mais opener.location.reload().
Ca devrait mieux marcher avec ça :)
Ensuite, dans ma version qui marche, je n'ai pas utilisé window.opener.location.reload(), mais opener.location.reload().
Ca devrait mieux marcher avec ça :)
Bon...
Et si tu vérifies le code source de la pop-up, tu as quoi ? Rien du tout ? Tu n'as pas une erreur javascript quelque part ?
Et si tu vérifies le code source de la pop-up, tu as quoi ? Rien du tout ? Tu n'as pas une erreur javascript quelque part ?
Oui mais tu mets le résultat en session avant ça, non ?
oui mais en fait c'est un peu inutile parceque je rentre quand même la personne dans la base et après quand je clique sur le bouton radio du service ça me l'affiche quand même puisque ça prend les personnes affectées à ce service
donc en gros les personnes qui correspondent à l'idx_service_emploi que j'ai check
donc en gros les personnes qui correspondent à l'idx_service_emploi que j'ai check
en fait j'ai un bouton "+" à droite qui ouvre une petite fenêtre où il y a un champ pour rechercher la personne et ensuite le bouton "valider" et donc j'insère la personne dans la base et je recharge la page en faisant window.parent.location.reload(), seulement j'aimerais lui passer comme paramètre l'id du bouton radio pour que quand je recharge la page cela s'affiche automatiquement et ne pas avoir besoin de recliquer sur le bouton radio.