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

AJAX Discussion :

AJAX et select multiple


Sujet :

AJAX

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Dijon
    Inscrit en
    Juin 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Dijon

    Informations forums :
    Inscription : Juin 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut AJAX et select multiple
    Bonjour, étant actuellement dans des études de développements, je voulais aborder des techniques et langages que je n'avais pas abordé en cours .
    En effet je suis donc sur un projet à base de JS et d'AJAX que je ne connaissait pas du tout il y'a encore quelques semaines.
    Je viens donc vers vous pour soliciter votre aide.
    En effet je bloque sur un select multiple. Et ce malgrès les différents tutos ou post suivi pour tenter de le résoudre .

    En effet je cherche à pouvoir sélectionner plusieurs éléments de mon select afin de les enregistrer dans ma bdd.
    En effet mon ancienne version me permettait de rajouter d'autre select cependant cela n'est pas pratique et j'aimerais pouvoir tout sélectionner dans le même.

    code enregistrer.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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    if(!empty($_POST['nom']) && !empty($_POST['prenom']) && !empty($_POST['numCP']) && !empty($_POST['mdp']) && !empty($_POST['ri1']) && !empty($_POST['profil']) && !empty($_POST['activite']))
    {
    	include '../../connexion.php';
     
     
    	$nom = $_POST['nom'];
    	$prenom = $_POST['prenom'];
    	$numCP = $_POST['numCP'];
    	$mdp = $_POST['mdp'];
     
     
    	$ris[0] = $_POST['ri1'];
    	if(!empty($_POST['ri2']))
    	{
    		$ris[1] = $_POST['ri2'];
    	}
    	if(!empty($_POST['ri3']))
    	{
    		$ris[3] = $_POST['ri3'];
    	}
     
    	$profil = $_POST['profil'];
     
    	$activite = $_POST['activite'];
     
    	$requete = 'SELECT EXISTS(SELECT 1 FROM app_utilisateur WHERE NumCP = "'.$numCP.'");';
    	$resultat = ReqToTab($requete);
     
    	// Si l'utilisateur n'existe pas, ajoute un nouveau, sinon le met à jour
    	if($resultat[0][0] == 0)
    	{
    		// Ajout du nouvel utilisateur
    		$requete = 'INSERT INTO app_utilisateur (Nom, Prenom, NumCP, idProfil, mdp) ';
    		$requete .= 'VALUES ("'.$nom.'", "'.$prenom.'", "'.$numCP.'", ';
    		$requete .= $profil.', "'.$mdp.'");';
     
    		$idUtilisateur = insertSQL($requete);
    	}
    	else
    	{
    		// Mise à jour des informations
    		$requete = 'UPDATE app_utilisateur ';
    		$requete .= 'SET nom = "'.$nom.'", prenom = "'.$prenom.'", idProfil = '.$profil.' ';
    		$requete .= 'WHERE NumCP = "'.$numCP.'";';
     
    		insertSQL($requete);
     
     
    		$requete = 'SELECT idUtilisateur FROM app_utilisateur ';
    		$requete .= 'WHERE NumCP = "'.$numCP.'";';
     
     
    		$resultat = ReqToTab($requete);
    		$idUtilisateur = $resultat[0][0];
    	}
     
     
    	//MAJ de l'activite de l'utilisateur dans la GPEC
    	$requete = 'SELECT EXISTS(SELECT 1 FROM app_utilisateursgpec WHERE idUtilisateur = "'.$idUtilisateur.'");';
    	//echo $requete."<br>";
    	$resultat = ReqToTab($requete);
     
    	if ($activite == "Actif"){$activite = 1;}else{$activite = 0;}
     
    	// Si l'utilisateur n'existe pas, ajoute un nouveau, sinon le met à jour
    	if($resultat[0][0] == 0)
    	{
    		// Ajout du nouvel utilisateur
    		$requete = 'INSERT INTO app_utilisateursgpec (idUtilisateur, activite) ';
    		$requete .= 'VALUES ("'.$idUtilisateur.'", "'.$activite.'");';
     
    		$idUtilisateur = insertSQL($requete);
    	}
    	else
    	{
    		// Mise à jour des informations
    		$requete = 'UPDATE app_utilisateursgpec ';
    		$requete .= 'SET activite = "'.$activite.'" ';
    		$requete .= 'WHERE idUtilisateur = "'.$idUtilisateur.'";';
     
    		insertSQL($requete);
    	}
     
    	// Ajoute/met à jour le RI
    	$requete = 'DELETE FROM app_utilisateursri WHERE idUtilisateur = '.$idUtilisateur.';';
    	insertSQL($requete);
     
     
    	foreach($ris as $key => $ri)
    	{
    		$requete = 'INSERT INTO app_utilisateursri (idUtilisateur, idRI) ';
    		$requete .= 'VALUES ('.$idUtilisateur.', '.$ri.');';
     
     
    		insertSQL($requete);
     
     
    		echo $ri;
    	}
    }

    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
    echo '		<span class="ri">';
    echo '			<select name="ri1">';
    echo '				<option value=""></option>';
    $ris = ReqToTab('SELECT * FROM app_ri');
    foreach($ris as $ri)
    {
    	echo '			<option value="'.$ri[0].'">'.$ri[1].'</option>';
    }
    echo '			</select>';
    echo '		</span>';
     
     
    echo '		<span class="ri"></span>';
    echo '		<span class="ri last"></span>';
    script AJAX fonction enregistrer

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    function enregistrerUtilisateur(form, txtRedir)
    {
    	var nom = form.elements['nom'].value;
    	var prenom = form.elements['prenom'].value;
    	var numCP = form.elements['numCP'].value;
     
    	var mdp = 'azerty';
    	if(form.elements['mdp'] !== undefined)
    	{
    		mdp = form.elements['mdp'].value;
    	}
     
     
    	var ri = Array();
    	ri[0] = form.elements['ri1'].options[form.elements['ri1'].selectedIndex].value;
    	if(form.elements['ri' + (ri.length + 1)] !== undefined)
    	{
    		ri[ri.length] = form.elements['ri' + (ri.length + 1)].options[form.elements['ri' + (ri.length + 1)].selectedIndex].value;
    	}
     
     
    	var profil = form.elements['profil'].value;
     
    	var activite = form.elements['activite'].value;
     
     
    	var loadBar = document.getElementById('loading');
     
     
    	function startLoading()
    	{
    		loadBar.style.display = 'block';
    	}
     
     
    	function stopLoading()
    	{
    		loadBar.style.display = 'none';
    	}
     
     
    	var timeOutId = setTimeout(startLoading, 1000);
     
     
    	var requete = 'administration/utilisateurs/enregistrer.php';
     
    	var postRI = '';
    	for(var i = 0; i < ri.length; i++)
    	{
    		postRI += '&ri' + (i + 1) + '=' + ri[i];
    	}
     
    	var xhr = getXHR();
    	xhr.onreadystatechange = function()
    	{
    		//alert(xhr.responseText);
    		if(xhr.readyState == 4 && xhr.status == 200)
    		{
    			var input = document.createElement('input');
    			input.type = 'hidden';
    			input.name = 'afficher';
    			input.value = 'utilisateurs';
     
     
    			var prod = document.getElementById('prod');
    			prod.elements['txtRedir'].value = txtRedir;
    			prod.appendChild(input);
    			prod.submit();
     
     
    			clearTimeout(timeOutId);
    			stopLoading();
     
     
    			//console.log(xhr.responseText);
    		}
    	}
    	xhr.open('POST', requete, true);
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	xhr.send('&nom=' + nom + '&prenom=' + prenom + '&numCP=' + numCP + '&mdp=' + mdp + postRI + '&profil=' + profil + '&activite=' + activite);
    }
    j'ai donc compris qu'il fallait modifier le select de l'index.php comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '			<select name="ri1[]" multiple>';
    cependant je bloque sur le script js ...


    Merci d'avance,

    Bien cordialement

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour et Bienvenue sur DVP.

    Pour envoyer un select multiple via ajax, tu concatènes les clés variable=valeurs avec le même nom de variable tableau à l'aide d'une boucle pour avoir le format:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    selectMutliple = "ri1[]="+optionSelectione1Valeur+"&ri1[]"+optionSelectione2Valeur;
    xhr.send('&nom=' + nom + '&prenom=' + prenom + '&numCP=' + numCP + '&mdp=' + mdp + postRI + '&profil=' + profil + '&activite=' + activite+"&"+selectMutliple);
    A+.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Dijon
    Inscrit en
    Juin 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Dijon

    Informations forums :
    Inscription : Juin 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour l'accueil !

    J'ai enfin reussi merci pour l'aide !!

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

Discussions similaires

  1. [AJAX] Select multiple de ajax à php
    Par senacle dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/06/2018, 16h23
  2. [AJAX] Select multiple avec ajax
    Par Antoine13 dans le forum AJAX
    Réponses: 7
    Dernier message: 23/01/2015, 23h47
  3. Réponses: 9
    Dernier message: 28/05/2013, 13h05
  4. Réponses: 4
    Dernier message: 26/10/2010, 11h03
  5. Moteur de recherche avec "select multiple" dynamique AJAX
    Par enclave_51 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/07/2008, 16h21

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