IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Appeler une fonction php avec un bouton


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Points : 6
    Points
    6
    Par défaut Appeler une fonction php avec un bouton
    Bonjour,

    J'ai une fonction php et je voudrais l'appeler grâce à un bouton en html. Je ne vois pas comment faire.
    J'ai testé plusieurs méthodes mais aucune ne fonctionne. Je crois qu'on peut le faire en AJAX mais je n'ai pas du tout les compétences..

    Voici la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    function export_csv($table, $colonnes) {
     
    include("../connexion.php");
     
    $xls_output = implode(';', $colonnes) . "\n";
     
    $query='SELECT '  . implode(',', $colonnes) . ' FROM ' . $table;
    $result = mysqli_query($connexion, $query);
     
    while($row = mysqli_fetch_assoc($result))
    {
          $xls_output .= implode(';', $row) . "\n";
    }
     
    header("Content-type: application/vnd.ms-excel");
    header("Content-disposition: attachment; filename=Ma_liste_" . date("Ymd").".csv");
    echo $xls_output;
    exit();
    }
    header(location:"test.html");
    $table = 'user';
    $colonnes = array('id_user', 'login');
    export_csv($table, $colonnes);
    Voici le bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input class="valider" type="button" name="export_csv" id="export_csv" value="Export_csv" onclick="document.location.href = 'export_csv.php'"/>
    J'ai testé header(location:"test.html"); et j'ai mis le code du button dedans mais ça ne marche pas.

    Merci à vous
    Méghan

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pourquoi tu as une redirection dans le premier code ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Je ne sais pas vraiment j'ai essayé plusieurs choses c'est un peu en vrac je l'avoue...
    Tu vois a peu près ce que je voudrais ?

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2012
    Messages : 131
    Points : 242
    Points
    242
    Par défaut
    Salut

    pas besoin d'ajax, un traitement normal suffira,

    1- fichier html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form action="export_csv.php">
    	<input type="submit" class="valider" value="Export csv" />
    </form>
    2- fichier php
    tu vire la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header(location:"test.html");

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Merci beaucoup !!

    Ca fonctionne très bien dans un fichier html vierge mais dès que je copie ce code dans un de mes fichiers html ca ne fonctionne pas... Ca me met une page blanche avec comme url : "http://localhost/inventaire/export_csv.php?"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form action="export_csv.php">
    	<input type="submit" class="valider" value="Export csv" />
    </form>
    Pour essayer de vous faire comprendre ce que je veux, je vais essayer de le redéfinir :

    J'ai ma fonction qui génère un fichier csv avec une requête et je voudrais que cette fonction fonctionne sur une page ou plusieurs pages où je pourrais avoir différents boutons pour faire différents export
    Exemple :
    Un bouton pour exporter ma bdd user
    Un bouton pour exporter ma bdd membre
    Un bouton pour exporter ma bdd materiel

    Donc il va falloir que j'ai 3 fois ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $table = 'user';
    $colonnes = array('id_user', 'login');
    export_csv($table, $colonnes);
     
    $table = 'membre';
    $colonnes = array('id_membre', 'nom');
    export_csv($table, $colonnes);
     
    $table = 'materiel';
    $colonnes = array('id_materiel', 'num_serie');
    export_csv($table, $colonnes);
    Donc, comment utiliser ma fonction pour différents export ? Il faut que je fasse différente variable ?
    Exemple : $export_user = export_csv($table, $colonnes); ?

    Merci à vous !
    Méghan

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu passes un paramètre dans ton lien ou ton bouton indiquant quelle table tu veux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    export_csv.php?table=user
    Et tu traites les différents cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    switch ($_GET['table']) {
       case 'user' :
           $table = 'user';
           $colonnes = array('id_user', 'login');
       break;
     
       case 'membre' :
            $table = 'membre';
            $colonnes = array('id_membre', 'nom');
       break;
    }
    export_csv($table, $colonnes);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Merci Sabotage !

    Alors dans mon fichier export_csv.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php
    //Fonction pour exporter les tableaux dans un fichier csv
    function export_csv($table, $colonnes) {
     
    include("../connexion.php");
     
    $xls_output = implode(';', $colonnes) . "\n";
     
    $query='SELECT '  . implode(',', $colonnes) . ' FROM ' . $table;
    $result = mysqli_query($connexion, $query);
     
    while($row = mysqli_fetch_assoc($result))
    {
          $xls_output .= implode(';', $row) . "\n";
    }
     
    header("Content-type: application/vnd.ms-excel");
    header("Content-disposition: attachment; filename=Ma_liste_" . date("Ymd").".csv");
    echo $xls_output;
    exit();
    }
     
    switch ($_GET['table']) {
       case 'user' :
           $table = 'user';
           $colonnes = array('id_user', 'login');
       break;
     
       case 'membre' :
            $table = 'membre';
            $colonnes = array('id_membre', 'nom');
       break;
    }
    export_csv($table, $colonnes);
    Et dans mon html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form action="export_csv.php?table=user">
     
    	<input type="submit" class="valider" value="Export csv" />
    </form>
    Il me génère bien un csv mais avec plein d'erreur ! Je vous met en pièce jointe l'Excel !
    Je dois mal positionner le code..
    Nom : csv.png
Affichages : 5843
Taille : 124,7 Ko

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Oui, c'est le code HTML de la page d'erreur produite par ton script...

    Erreur manifestement due au fait que tu utilises la fonction implode sur le second paramètre de ta fonction alors que ce paramètre n'est pas un tableau...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  9. #9
    Futur Membre du Club
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Donc il faut que je remplace la fonction implode ?

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux prevoir les cas ou les données sont manquantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    if (isset($_GET['table'])) {
    switch ($_GET['table']) {
       case 'user' :
           $table = 'user';
           $colonnes = array('id_user', 'login');
       break;
     
       case 'membre' :
            $table = 'membre';
            $colonnes = array('id_membre', 'nom');
       break;
     
       default :
            exit();
       break;
    }
    export_csv($table, $colonnes);
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Appeler une fonction php dans une requete mysql
    Par yobogs dans le forum Requêtes
    Réponses: 2
    Dernier message: 20/11/2007, 13h43
  2. Réponses: 4
    Dernier message: 24/08/2007, 15h56
  3. [JQUERY] Comment appeler une fonction php avec jquery
    Par popogendarme dans le forum jQuery
    Réponses: 1
    Dernier message: 20/03/2007, 16h07
  4. Réponses: 13
    Dernier message: 01/10/2006, 15h52
  5. [PHP-JS] une fonction php avec parametres javascript
    Par kagura dans le forum Langage
    Réponses: 1
    Dernier message: 02/03/2006, 18h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo