Header pour rester sur la même page
infoxx
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
-
infoxx Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
infoxx Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous!
Je m'explique: j'ai un formulaire en HTML/PHP, qui effectue des appels à des Procédures stockées (PS) sous Oracle. J'ai déjà mis en place la fonctionnalité permettant d'exporter les données de sortie des PS SQL au format csv. Ce que je voudrais maintenant c'est que l'utilisateur puisse aussi simplement afficher ces données dans un tableau sous le formulaire. Sachant que j'ai aussi crée une fonction (php) permettant à partir d'une requête SQL de créer un tableau html avec les données de sortie.
Ce que je n'arrive pas à faire, c'est faire en sorte que quand l'utilisateur clique sur un boutton 'afficher tableau' de mon formulaire, le tableau s'affiche.. Car on ne peut pas appeler de fonctions php dans l'html/php/javascript ..
Je m'explique: j'ai un formulaire en HTML/PHP, qui effectue des appels à des Procédures stockées (PS) sous Oracle. J'ai déjà mis en place la fonctionnalité permettant d'exporter les données de sortie des PS SQL au format csv. Ce que je voudrais maintenant c'est que l'utilisateur puisse aussi simplement afficher ces données dans un tableau sous le formulaire. Sachant que j'ai aussi crée une fonction (php) permettant à partir d'une requête SQL de créer un tableau html avec les données de sortie.
Ce que je n'arrive pas à faire, c'est faire en sorte que quand l'utilisateur clique sur un boutton 'afficher tableau' de mon formulaire, le tableau s'affiche.. Car on ne peut pas appeler de fonctions php dans l'html/php/javascript ..
A voir également:
- Header pour rester sur la même page
- Comment supprimer une page sur word - Guide
- Imprimer tableau excel sur une page - Guide
- Page d'accueil - Guide
- Ouvrez cette page. dans le code de la page, modifiez la couleur de fond de la classe .pix. un code de 4 chiffres doit apparaître dans la grille. lequel ? ✓ - Forum Programmation
- Consultez le code source de cette page. copiez la ligne qui indique aux moteurs de recherche de ne pas référencer la page. ✓ - Forum Référencement
12 réponses
Il y a deux manière de procéder :
-soit en utilisant ajax : javascript qui interragit avec le php de manière asynchrone
-soit en utilisant ta fonction (php) permettant à partir d'une requête SQL de créer un tableau html avec les données de sortie : il faut que ton bouton d'extraction soit dans un formulaire avec une méthode POST , qui envoit les données ( id ou autre selon ce que ta fonction prend en paramètre ) vers un fichier php qui contient ta fonction et qui va renvoyer en sortie ( avec la méthode echo je suppose ) du html dans ta page .
Si tu as besoin de plus d'explication , un peu de code ne serait pas du luxe
-soit en utilisant ajax : javascript qui interragit avec le php de manière asynchrone
-soit en utilisant ta fonction (php) permettant à partir d'une requête SQL de créer un tableau html avec les données de sortie : il faut que ton bouton d'extraction soit dans un formulaire avec une méthode POST , qui envoit les données ( id ou autre selon ce que ta fonction prend en paramètre ) vers un fichier php qui contient ta fonction et qui va renvoyer en sortie ( avec la méthode echo je suppose ) du html dans ta page .
Si tu as besoin de plus d'explication , un peu de code ne serait pas du luxe
Merci pour ta réponse! oui je voudrais bien, enfin ce que je voudrais savoir c'est comment fais tu pour que le fichier php contenant ma fonction renvoie en sortie du html dans ma page??
Oui pas de problème, que veux tu que je t'envoie comme code??
Oui pas de problème, que veux tu que je t'envoie comme code??
le code de ton formulaire html et celui de ton fonction de traitement en php ( et le traitement du formualire en même temps )
La réponse à ta question et la méthode echo() en php .
La réponse à ta question et la méthode echo() en php .
je vais t'envoyer seulement une partie, car il est dynamique, donc le code est très long:
<?php // récupération des variables $no_type_plis = isset($_POST["typePlis"]) ? $_POST["typePlis"] : 0; $aTypePlis = array(0=>"Veuillez sélectionner un choix", 1=>"Liste des doublons X", 2=>"Liste des doublons Y",); ?> <script> function telecharger_csv(){ if (document.nomForm.typePlis.value==0){ alert("Veuillez sélectionner un type de plis."); } else if ((document.nomForm.typePlis.value==1)||(document.nomForm.typePlis.value==2)){ document.nomForm.type_plis_doublon.value = document.nomForm.typePlis[document.nomForm.typePlis.selectedIndex].text; var old_action=document.nomForm.action; document.nomForm.action="../int/telecharger_doublons.php"; document.nomForm.submit(); document.nomForm.action = old_action; } else{ alert("Le système a rencontré un problème inattendu, veuillez recommencer."); } } </script> <form name="nomForm" id="frm_filtre" method="post" action="?page=doublons_eti"> <div align="center" style="z-index: 1";> <table width="100%" class="filtre" > <!-- Type de plis id : type_plis--> <tr> <td align="center">Type de plis</td></tr> <tr> <td align='left'> <SELECT style="width: 250px; "name="typePlis"> <? foreach($aTypePlis as $clef => $valeur) { if(intval($no_type_plis)==intval($clef)) { $selected = "selected"; } else{ $selected = ""; } echo "<option ".$selected." value='".$clef."'>".$valeur."</option>"; } ?> </SELECT> </td> </tr> <!-- Pour lancer la requête --> <tr> <td colspan="2" height="60" align="center">Export csv <a href='#' onClick='javascript:telecharger_csv(); '> <img src='../Img/icones/ico_excel.gif' width='32' height='32' border='0' title='exporter le résultat au format csv'></a> </td> </tr> <tr> <td> <input type="button" value="Afficher le résultat dans un tableau" onclick='javascript: window.location.href="afficher_tableau.php"' > </td> </tr> <tr><br /></tr> <!-- Juste pour récupérer des variables--> <input type="hidden" name="type_plis_doublon" value=""> <input type="hidden" name="nom_page" value="doublons_eti"> </table> </div> </form>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ça c'était donc le formulaire
ma page afficher_tableau.php:
Et l'affichage se fait, sauf que il se fait sur une autre page : la page "afficher_tableau.php" ..
ma page afficher_tableau.php:
// récupération des variables $no_type_plis = isset($_POST["typePlis"]) ? $_POST["typePlis"] : 0; // connexion au serveur .. switch ($no_type_plis){ case 1: $sql = " ma requete sql"; $nom_cols=array(); $nom_col1="Date premier depot"; $nom_cols[]=$nom_col1; echo afficher_tableau($sql, $nom_cols, $nb_ligne_par_page); break; case 2: // meme principe default: echo 'no data'; break; }
Et l'affichage se fait, sauf que il se fait sur une autre page : la page "afficher_tableau.php" ..
Bien sur, tiens :
LA fonction barre_navigation affiche une barre avec des flèches pour naviguer dans les différentes pages du tableau (comme il n'est afficher que X lignes par X lignes)
function afficher_tableau($requete, $nom_col, $nb_ligne_par_page, $page_courante = 0, $nom_form = "nomForm2") { global $DB ; $total_ligne = retourne("select count(*) from (" . $requete . ")"); $total_page = intval($total_ligne / $nb_ligne_par_page)+($total_ligne % $nb_ligne_par_page ? 1 : 0); $plageLigneDebut = ($page_courante * $nb_ligne_par_page)+1; $plageLigneFin = ($page_courante * $nb_ligne_par_page + $nb_ligne_par_page); if($plageLigneFin > $total_ligne) { $plageLigneFin = $total_ligne; } $requete = "select R.* " . " from (" . " select ROWNUM as ligne, S.* from ( " . $requete . " ) S " . " ) R "; $requete .= ($page_courante!=-1 ? " WHERE Ligne BETWEEN " . $plageLigneDebut . " and " . $plageLigneFin . " " : " "); $conn = oci_connect(/* connexion*/) ; $rs = oci_parse($conn, $requete) ; oci_execute($rs, OCI_DEFAULT); $retour = "\n<form name=\"".$nom_form."\" id=\"".$nom_form."\" method=\"post\"><div align=\"center\">\n"; $retour .= " <table align=\"center\" class=\"classeTab\" cellpadding=\"0\" cellspacing=\"0\">\n"; $retour .= " <br /> <tr>".presenter_ligne_titre($nom_col)."</tr>\n"; $i=0; while($ligne = oci_fetch_row($rs)){ $retour .= " <tr class=\"".($i%2 ? "ligne1" : "ligne0")."\">"; $retour .= presenter_ligne($ligne, $nom_col); $retour .= "</tr>\n"; $i++; } $retour .= " </table>\n"; $retour .= ($page_courante!=-1 ? barre_navigation($page_courante, $total_page, $nom_form) : ""); $retour .= "</div></form>\n"; oci_free_statement($rs); oci_close($conn); return $retour; }
LA fonction barre_navigation affiche une barre avec des flèches pour naviguer dans les différentes pages du tableau (comme il n'est afficher que X lignes par X lignes)
Je pense que le problème viens du fait qu'au lieu de submit le formulaire , au clic du bouton la page est redirigée en javascript , il n'y a donc pas d'exécution de la fonction:
<input type="button" value="Afficher le résultat dans un tableau" onclick='javascript: window.location.href="afficher_tableau.php"' >
cela redirige mais ne poste pas les informations du formulaire
$no_type_plis = isset($_POST["typePlis"]) ? $_POST["typePlis"] : 0;
il n'y a pas de valeur dans post , le switch ne fonctionne donc pas après etc ...
Je ne peux que vous conseiller de lire un peux de documentation concernant les formulaires en PHP
<input type="button" value="Afficher le résultat dans un tableau" onclick='javascript: window.location.href="afficher_tableau.php"' >
cela redirige mais ne poste pas les informations du formulaire
$no_type_plis = isset($_POST["typePlis"]) ? $_POST["typePlis"] : 0;
il n'y a pas de valeur dans post , le switch ne fonctionne donc pas après etc ...
Je ne peux que vous conseiller de lire un peux de documentation concernant les formulaires en PHP
Le code que j'ai posté n'est pas excatement celui sur lequel je trvail (par soucis de confidentialité) mais mon switch fonctionne, comme je l'ai dit, les tableaux s'affichent, mais sur une autre page, comment dois-je faire pour qu'ils s'affichent sur la page courante??