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 :

Undefined index quand je clique sur le bouton submit


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 4
    Par défaut Undefined index quand je clique sur le bouton submit
    Bonjour tout le monde,

    Je suis en train de développer un site web en utilisant des divs. J'ai les DIVs suivants :
    - Header,
    - Left (Menu),
    - Right (qui contient un moteur de recherche et un espace adhérents)
    - Middle (DIV dans laquelle je dois avoir mes différentes page php lorsque je clique sur un lien de la DIV Left (c.à.d. Menu), ou lorsque je clique sur le bouton submit d'un formulaire de la DIV right)
    - Footer.

    Bon, tout va bien avec la DIV Left, c'est à dire les pages sont affichées dans la DIV Middle. Toutefois, lorsque je clique sur le bouton submit du moteur de recherche, le contenu du champ du texte ne se poste pas (j'utilise $_POST['Text_field_name'], j'ai eu un message d'erreur :

    Notice: Undefined index: Text_field_name in C:\Program Files\EasyPHP 5.3.9\www\Site_Mutuelle_Armee_Tunisienne\index_18.php on line 32
    Les noms des fichiers php de mon site sont de la forme index_1.php, index_2.php, etc. car je suis en train d'utiliser le # pour afficher l'url des pages sous la forme #index1.php, #index2.php, etc.

    Le code jQuery que je suis en train d'utiliser est le suivant :

    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
    52
    53
    54
    55
    56
    57
    58
    var default_content="";
    $(document).ready(function(){
    	checkURL();
    	$('ul#mainmenu li a').click(function (e){
     
    			checkURL(this.hash);
     
    	});
     
    	//filling in the default content
    	default_content = $('#middle').html();
     
    	setInterval("checkURL()",250);
     
    });
     
    var lasturl="";
     
    function checkURL(hash)
    {
    	if(!hash) hash=window.location.hash;
     
    	if(hash != lasturl)
    	{
    		lasturl=hash;
     
    		// FIX - if we've used the history buttons to return to the homepage,
    		// fill the pageContent with the default_content
     
    		if(hash=="")
    		$('#middle').html(default_content);
     
    		else
    		loadPage(hash);
     
    	}
    }
    function loadPage(url)
    {	
    	url=url.replace('#index','');
     
     
    	$.ajax({
    		type: "POST",
    		url: "load_page.php",
    		data: 'index='+url,
    		dataType: "html",
    		success: function(msg){
     
    			if(parseInt(msg)!=0)
    			{
    				$('#middle').html(msg);
    			}
    		}
     
    	});
     
    }
    Le code php de la page load_page.php est le suivant :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
     
    $page = (int)$_POST['index'];
    if (file_exists('index_'.$page.'.php'))
    include('index_'.$page.'.php');
    else
    echo"page non trouvée!!!";
     
    ?>

    Merci d'avance,
    Houssem Tunisie

  2. #2
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Ton code jQuery n'envoie aucun paramètre Text_field_name, c'est donc normal que PHP ne le reçoive pas...
    Ou alors j'ai mal compris ta question ?
    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

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 4
    Par défaut
    Merci pour la réponse
    Je m'explique encore plus.
    La DIV Left (celle du menu) est la suivante :
    Code html : 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
    <div id="left">
      <ul id="mainmenu">
         <li class="bg"></li>
         <li><a href= "#index2.php"></a></li>
         <li><a href= "#index3.php"></a></li>
    	 <li><a href= "#index4.php"></a></li>
         <li><a href= "#index5.php"></a></li>
         <li class="bg">الخدمات المسداة</li>
         <li><a href= "#index6.php"></a></li>
         <li><a href= "#index7.php"></a></li>
         <li><a href= "#index8.php"></a></li>
         <li><a href= "#index9.php"></a></li>
         <li class="bg">خدمات على الخط</li>
         <li><a href= "#index10.php"></a></li>
         <li><a href= "#index11.php"></a></li>
         <li><a href= "#index12.php"></a></li>
         <li><a href= "#index13.php"></a></li>
      </ul>
    </div>
    Donc, comme vous le remarquez, je suis en train d'utiliser "#index2.php" par exemple comme nom de la page (car j'utilise window.location.hash) pour l'affichage de l'URL. Ceci marche bien avec les liens du menu. Toutefois, lorsque j'ai créé le formulaire du moteur de recherche dont le code est le suivant :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form id="target" method="post" action="#index18.php">
              <input type="text" name="req" id="req" size="8" value="البحث" onblur="if(this.value=='') this.value='البحث';" onfocus="if(this.value=='البحث') this.value='';">
    		  <input type="submit" value="ok" />
            </form>
    J'ai eu l'erreur "undefined index". Il est à noter que lorsque je mets la valeur de l'attribut action du formulaire à action="index_18.php", ça marche mais un nouvel onglet est ouvert. Néanmoins, j'aimerais trop que le résultat de la recherche sera affiché dans la DIV Middle (celle qui se situe dans le centre du site).
    Bon, lorsque j'ai mis la ligne de code : "print_r($_POST);"dans la page "index_18.php" (c'est la page php qui permet d'accéder à la base de données MySQL pour retourner le résultat de la recherche), j'ai eu comme résultat :
    Array ( [index] => 18.php ) et j'ai pas eu : Array ( [req] => ...)
    Selon mon point de vue, je crois que la faute existe au niveau du fichier php : "load_page.php" qui ne permet pas de poster le champ de texte.

    Merci d'avance

  4. #4
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Ah... d'accord. Merci de faire remarquer que ton problème ne vient en rien du code que tu as montré au premier message...
    C'était difficile de t'aider du coup !

    Un lien de type ancre action="#index18.php" ne provoque pas de rechargement de la page, ça déplace juste la page au niveau de l'ancre si elle existe.
    Donc pas de rechargement de page, pas de données à récupérer sur le serveur puisqu'il n'est pas appelé !
    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

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 4
    Par défaut
    Merci encore une fois Bovino. Donc, qu'est ce que je dois faire ? car le code Jquery que je suis en train d'utiliser est lié au code php de la page "load_page.php". Je me suis bloqué là

    Merci d'avance

  6. #6
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Tu pourrais vérifier à chaque requête AJAX si le champ est rempli. Si c'est le cas, l'ajouter aux paramètres puis le vider.

    Au passage, au lieu de tes fonction onfocus et onblur, tu ferais mieux d'utiliser l'attribut placeholder !
    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

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/02/2013, 23h05
  2. [JPanel] inserer une image quand on clique sur un bouton
    Par the_ugly dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 19/12/2006, 13h41
  3. [phpBB] Envoi mail automatique quand on clique sur un bouton
    Par Nicca dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 08/12/2006, 11h42
  4. Afficher une TextArea quand on clique sur un bouton
    Par Goozisan dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 26/11/2006, 20h44

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