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

jQuery Discussion :

requête AJAX avec jQuery


Sujet :

jQuery

  1. #1
    Membre habitué Avatar de omar24
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 159
    Points : 172
    Points
    172
    Par défaut requête AJAX avec jQuery
    Salut tout le monde,
    Je veux créer un formulaire qui permet de générer un fichier CSS.
    Voila mes codes:

    index.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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <html>
    	<head>
    		<title>Personnaliser votre thème</title>
    		<script type="text/javascript" src="jquery-1.4.2.js"></script>
    		<script type="text/javascript" src="jscolor/jscolor.js"></script>
    		<script type="text/javascript">
     
     
     
    		$().ready(function() {
    			$("#save").bind('click', function() {
    				var css,bgcol,photo,sizetext,textcol;
    				 bgcol = "#"+$("#bgcol").val();
    				 photo = $("#photo").val();
    				 sizetext = $("#sizetext").val()+'em';
    				 alert(sizetext);
    				 textcol = "#"+$("#textcol").val();
    				//css = "body{background-color:"+bgcol+";font-size:"+sizetext+";color:"+textcol+";background-image:url("+photo+");}";
    				//alert(css);
     
    					$.ajax({
    						url : "css.php",
    						data : "bgcol="+bgcol+"&sizetext="+sizetext+"&textcol="+textcol+"&photo="+photo,
    						success : function(data) {
    									if(data == 0)  {
    										alert('ok');
    									}
    								}
    					});
    				//$("body").css('background-color',bgcol).css('font-size',sizetext).css('color',textcol).css('background-image','url('+photo+')');
    			});
     
    		});
     
    		</script>
    	</head>
    <body>	
    <table>
    <tr><td>Couleur arriere-plan </td><td><input type="text" id="bgcol" class="color"/></td></tr>
    <tr><td>Transfère le fichier </td><td>  <input type="file" id="photo" /></td></tr> 
    <tr><td>Taille texte </td><td><input type="text" id="sizetext"/></td></tr>
    <tr><td>Couleur texte </td><td><input type="text" id="textcol" class="color"/></td></tr>
    <tr><td><input type="button" value="Appliquer" id="save"/></td><td></td></tr>
    </table>
     
    Bonjour tout le monde,
    C'est un teste pour changer le style de a page. On essaye de donner un moyen aux utilisateurs de choisir le design qui leurs convient.
     
    </body>
    </html>
    css.php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    $bgcol = $_GET['bgcol'];
    $sizetext = $_GET['sizetext'];
    $textcol = $_GET['textcol'];
    $photo = $_GET['photo'];
    $css = "body{background-color:".$bgcol.";font-size:".$sizetext.";color:".$textcol.";background-image:url(".$photo.");}";
    //echo $css;
    $monfichier = fopen('style.css', 'r+');
    fputs($monfichier, $css);
    echo 0;
    ?>
    ça me pose le problème suivant:


    br />
    <b>Notice</b>: Undefined index: sizetext in <b>C:\Program Files\Apache Group\Apache2\htdocs\roller\css.php</b> on line <b>3</b><br />
    <br />
    <b>Notice</b>: Undefined index: textcol in <b>C:\Program Files\Apache Group\Apache2\htdocs\roller\css.php</b> on line <b>4</b><br />
    <br />
    <b>Notice</b>: Undefined index: photo in <b>C:\Program Files\Apache Group\Apache2\htdocs\roller\css.php</b> on line <b>5</b><br />

    pourquoi les valeurs ne sont pas envoyées au fichier css.php? je ne vois poa où est ma faute?

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Points : 238
    Points
    238
    Par défaut
    Yop,
    essayes de préciser le type de requete ajax "post/get" ?

  3. #3
    Membre habitué Avatar de omar24
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 159
    Points : 172
    Points
    172
    Par défaut
    c'est fait mais en vain?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $.ajax({
    						type : "GET",
    						url : "css.php",
    						data : "bgcol="+arg0+"&sizetext="+arg1+"&textcol="+arg2+"&photo="+arg3,
    						success : function(data) {
    									if(data == 0)  {
    										alert('ok');
    									}
    								}
    					});
    le problème c'est que le même code dans d'autres situations fonctionne, ici je ne vois pas l'erreur!!!

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Mais bon c'est des erreurs php...
    Pour toutes tes variables $_GET (ou $_POST) fais plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bgcol = isset($_GET['bgcol'])? $_GET['bgcol'] :'valeur par défaut' ;

    et tu n'auras plus ces notices.

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Ah oui, je viens de voir autre chose : c'est pas génial de faire passer un # dans une url.
    Fais plutôt passer seulement la valeur bgcol = $("#bgcol").val(); dans l'url de la requête puis rajoute le # côté php.

    css.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $bgcol = isset($_GET['bgcol'])? '#'.$_GET['bgcol'] : #000;
    //etc.

  6. #6
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    En affichant simplement le texte envoyé, je vois que l'URL du fichier n'est pas reprise.

    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
    		$(function(){
     
    			$("#save").bind('click', function() {
    				var css,bgcol,photo,sizetext,textcol;
     
    				bgcol = "#"+$("#bgcol").val();
    				photo = $("#photo").val();
    				sizetext = $("#sizetext").val()+'em';
    				textcol = "#"+$("#textcol").val();
     
    				// C:\Users\Daniel\Documents\Floribert Babaatubi\Cartes Perso\Floribert.vip
     
    				console.log("bgcol="+bgcol+"&sizetext="+sizetext+"&textcol="+textcol+"&photo="+photo);
     
    				// bgcol=#black&sizetext=213em&textcol=#white&photo=Floribert.vip
    			});
    		});
    EDIT

    En testant une version avec $.param() -- http://api.jquery.com/jQuery.param/, je vois qu'il remplace le caractère # par %23 !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $(function(){
    	$("#save").bind('click', function() {
    		var css, tab = [
    			{name:"bgcol", value:"#"+$("#bgcol").val()},
    			{name:"sizetext", value:$("#sizetext").val()+"em"},
    			{name:"textcol", value:"#"+$("#textcol").val()},
    			{name:"photo", value:$("#photo").val()}
    		];
     
    		console.log($.param(tab));
     
    		// bgcol=%23black&sizetext=213em&textcol=%23white&photo=Floribert.vip
    	});
    });

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    @danielhagnoul

    Oui c'est pour éviter ce genre de bin's auquel j'ai déjà eu affaire par ailleurs que j'utilisais cette solution.

    Cela dit il est vrai que je prend un peu la tangente ...

  8. #8
    Membre habitué Avatar de omar24
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 159
    Points : 172
    Points
    172
    Par défaut
    Merci à tous,
    Un special merci à ABCIWEB ta réponse est bien ce que je cherchais.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passer paramètres à requête Ajax avec jQuery
    Par Augustule dans le forum jQuery
    Réponses: 13
    Dernier message: 15/10/2013, 16h06
  2. Réponses: 11
    Dernier message: 03/05/2011, 00h22
  3. [JQuery] Requête ajax avec jQuery
    Par ApheX2 dans le forum jQuery
    Réponses: 3
    Dernier message: 28/08/2008, 22h40
  4. ajax avec jquery
    Par artotal dans le forum jQuery
    Réponses: 14
    Dernier message: 20/07/2008, 22h26
  5. [MooTools] requête ajax avec Mootools
    Par oneTime dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 14/04/2008, 10h50

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