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

Langage PHP Discussion :

[Système] traitement de donnée dans la même page


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut [Système] traitement de donnée dans la même page
    Bonjour,

    J'ai une 1ere page (page1.php) qui demande a l'utilisateur de choisir un fichier.
    Dans ma seconde pagee (page2.php), j'ouvre ce fichier et j'affiche dans un select son entete (plusieurs choix) et je veux que l'utilisateur en choisisse un et clique sur OK
    De là, toujours dans la même page (page2.php), je continue mon programme de traitement.

    Voici mon code du select :
    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
     
    function choix_colonne($sheet)
    {
    	$entete;
    	/* AFFICHAGE D'UN FORMULAIRE DE TYPE SELECT AVEC LES DIFFERENTES COLONNES*/
     
    	echo ('<p><form action="traitement_xls('.$entete.") method='POST' enctype='multipart/form-data'>
    			<select name='colonne' size='1'>
    			<option selected value='0'>- Choisir la colonne - </option>");
     
    	for($u='A';$u<'C';$u++)//colonne
    	{
    		$entete=$sheet->Range($u.'1');
    		echo("<option value=".$u.">".$entete."</option>");			
    	}
    	echo("<input type=submit value=ok></form></p>");
    	echo "<br \>";			
    }
    Avec ce code, lorsque je choisi mon entete et clique sur OK ca me met une erreur comme quoi mon fichier =NULL

    Je détaille :
    Dans ma page page2.php, je recupere avec POST la chemin du fichier puis j'ouvre le fichier je le traite et je ferme. Mais quand je clique sur OK pr choisir l'entete, il me fais une boucle ! il re-ouvre le fichier mais il n'a plus le nom donnc il me dit que c'est NULL !

    Moi je veux que quand l'utilisateur a choisi son entete, je vais a la fonction traitement, je traite et après je ferme le fichier.

    Aidez moi :'(

  2. #2
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Points : 1 071
    Points
    1 071
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo ('<p><form action="traitement_xls('.$entete.") method='POST' enctype='multipart/form-data'>
    <select name='colonne' size='1'>
    <option selected value='0'>- Choisir la colonne - </option>");
    y aurait pas qqs soucis de " et ' mélangés en salades ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut
    quel serait la bonne syntaxe alors?
    même si je ne suis persuadé que ca vienne que de là :/

  4. #4
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Points : 1 071
    Points
    1 071
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo ('<p><form action="traitement_xls('.$entete.')" method="POST" enctype="multipart/form-data">
    <select name="colonne" size="1">
    <option selected="selected" value="0">- Choisir la colonne - </option>');
    que représente traitement_xls('.$entete.') ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut
    ma fonction traitement avec en argument, le n° de colonne a traiter

  6. #6
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Points : 1 071
    Points
    1 071
    Par défaut
    tu ne peux pas mettre une fonction tel quelle o_O ou alors faut faire pété un paquet de js.
    Le action de ton formulaire doit cibler une page physique.
    Par exmple, un traitement.php dans lequel tu applique ce que ta fonction devait faire.
    en début de fichier, un petit
    te permettra de voir ce que ton formulaire t'envoie

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut
    Le probleme c'est que si je fais pointé sur cette meme page, il va bouclé et donc il va reouvrir le fichier mais l'url du fichier va devenir NULL dc il va pas trouver ...

    C'est pour ca que je voulais lui dire qu'il reste sur cette page mais qu'il continue le programme a partir de cette fonction au lieu de rebouclé le programme et de ne plus rien trouver.

    Voici le code erreur :
    Notice: Undefined index: choix_xls in C:\Program Files\EasyPHP 2.0b1\www\uniformisation2.php on line 169

    Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft Excel<br/><b>Description:</b> Impossible de lire la propriété Open de la classe Workbooks.' in C:\Program Files\EasyPHP 2.0b1\www\uniformisation2.php:8 Stack trace: #0 C:\Program Files\EasyPHP 2.0b1\www\uniformisation2.php(8): variant->Open(NULL) #1 C:\Program Files\EasyPHP 2.0b1\www\uniformisation2.php(172): ouverture_xls(NULL) #2 {main} thrown in C:\Program Files\EasyPHP 2.0b1\www\uniformisation2.php on line 8

    choix_xls étant l'url du fichier a ouvrir

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut
    Bon je crois que j'avance !
    Au lieu de faire un bouton submit je fais un bouton button et je fais le lien sur le onclic sur ma fonnction !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<input type='button' value='OK' onclick='traitement_xls('A')'>";
    Mais ca ne marche pas évidement :s pourtant j'ai vu sur le net le même code et ca marché pour eux :s

    Une idée ou une correction???

    PS : Pas de JS ^^

  9. #9
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Points : 1 071
    Points
    1 071
    Par défaut
    PS : Pas de JS ^^
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick='traitement_xls('A')
    c'est du JS

    je pense qu'il serait bon de lire qqs tutos sur la place de PHP et de JS, ainsi que sur les formulaires.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut
    t'inquiete c'est bon j'ai compris le pb, le php c'est le coté serveur donc il execute le programme et basta il atten rien en retour si je veux su'il prenne en compte la saisie de l'utilisateur, je suis obligé de faire une autre page php.

    Concernant le onclick, c'est un attribut de input donc pas de java et le nom de la fonction que j'avais mis c'était php pas js :/ ^^

  11. #11
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    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
     
    function choix_colonne($sheet)
    {
    	$entete;
    	/* AFFICHAGE D'UN FORMULAIRE DE TYPE SELECT AVEC LES DIFFERENTES COLONNES*/
     
    	echo '<p><form action="nom_de_page.php" method="POST">
    			<select name="colonne" size="1">
    			<option selected value="0">- Choisir la colonne - </option>';
     
    	for($u=0;$u<50;$u++)//colonne
    	{
    		$entete=$sheet->Range($u.'1');
    		echo "<option value=".$u.">".$entete."</option>";			
    	}
    	echo '<input type="submit" value="ok"></form></p>';
    	echo "<br \>";			
    }
    Si tu veux traiter ca dans la meme page ben :

    if(isset($_POST['colonne']))
    {
    // Traitement
    }
    Concernant le onclick, c'est un attribut de input
    C'est un attribut de input d'accord, onClick est un attribut évenementiel géré par Javascript. A l'intérieur on mets un traitement javascript, par exemple onClick="verifierFormulaire();"

    Revois les bases du PHP et du HTML car il y a des choses que tu n'as pas du totalement assimiler.

    for($u='A';$u<'C';$u++)

    'A' + 1 = ?

Discussions similaires

  1. Transmettre des données dans une même page
    Par Detere dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/04/2008, 13h05
  2. Changer données en restant dans la même page
    Par finalfx dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/12/2006, 05h20
  3. [Système] exécuter fonction php dans la même page ?
    Par AzertyH dans le forum Langage
    Réponses: 6
    Dernier message: 22/11/2006, 11h01
  4. [Formulaires] Traitement des données dans une autre page...
    Par sekiryou dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/03/2006, 10h08
  5. [PHP-JS] Traitement des données dans une autre page...
    Par sekiryou dans le forum Langage
    Réponses: 5
    Dernier message: 04/03/2006, 10h06

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