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] Listées liées et bouton submit


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 17
    Par défaut [AJAX] Listées liées et bouton submit
    Bonjour,

    je possède une page avec un formulaire contenant deux listes et des boutons radio liés (discussion précédente: http://www.developpez.net/forums/d11...boutons-radio/ qui fontionne bien.

    Ma seconde liste se remplie suivant la sélection dans la première et la valeur des radio.

    Mais je voudrais pouvoir supprimer la selection dans la seconde liste en cliquant sur un bouton delete.
    Le problème est que la seconde liste est générée via une autre page php et je n'arrive pas à récupérer la selection dans la première page.
    Auriez-vous une solution ou un exemple pour m'aider?

    Voici mon code:

    Fonction ajax (ajax_refresh_list.js):
    Code javascript : 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
     
    // Requette AJAX pour récupérer valeur liste + valeur radio list_type et filter_type
    function makeRequest1(url,id_selectcompany,id_selectdom,nom_radio_filter){
    var http_request = false;
    //créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType) {
    http_request.overrideMimeType('text/xml');//un appel de fonction supplémentaire pour écraser l'en-tête envoyé par le serveur, juste au cas où il ne s'agit pas de text/xml, pour certaines versions de navigateurs Mozilla
    }
    } else if (window.ActiveXObject) { // IE
    try {
    http_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    try {
    http_request = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e) {}
    }
    }
    if (!http_request) {
    alert('Abandon :( Impossible de créer une instance XMLHTTP');
    return false;
    }
    http_request.onreadystatechange = function() { traitementReponse(http_request,id_selectdom); } //affectation fonction appelée qd on recevra la reponse
    // lancement de la requete
    http_request.open('POST', url, true);
    //changer le type MIME de la requête pour envoyer des données avec la méthode POST , !!!! cette ligne doit etre absolument apres http_request.open('POST'....
    http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    obj=document.getElementById(id_selectcompany);
    http_request.send('val_sel='+obj.value+'&list_type_val='+ get_list_type_Value() +'&filter_type_val='+get_filter_type_Value(nom_radio_filter)); 
    }
     
    // Fonction pour récupérer la valeur des radio list_type
    function get_list_type_Value(){
    	var lstRadios = document.getElementsByName('list_type');
    	for(var i=0; i<lstRadios.length; i++){
    		if(lstRadios[i].checked){
    			return lstRadios[i].value;
    		}
    	}
    	return null;			
    }
    // Fonction pour récupérer la valeur des radio filter_type
    function get_filter_type_Value(nom_radio_filter){
    	var lstRadios = document.getElementsByName(nom_radio_filter);
    	for(var i=0; i<lstRadios.length; i++){
    		if(lstRadios[i].checked){
    			return lstRadios[i].value;
    		}
    	}
    	return null;				
    }

    2e page php

    Code php : 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
     
    <?php
     
    include ("db/mysql_db.php");
    $list_type=$_POST['list_type_val'];
    $result_recherche=mysql_query("SELECT distinct $list_type FROM Custom_URL where company_location='".$_POST['val_sel']."' and type='".$_POST['filter_type_val']."' ORDER BY $list_type" ) or die ("Error: ".mysql_error());
    $aff="";
    $aff=$aff."<select name='selectdom[]' id='id_selectdom' size='10' multiple='multiple'>";
    	while ($row=mysql_fetch_assoc($result_recherche))
    	{
    		$aff.="<option value=\"$row[$list_type]\">$row[$list_type]</option>";
    	}
    $aff=$aff."</select><br><br>";
    echo $aff;
    mysql_close($conn);
    echo '<p>Click on Delete button to apply: </p></br>';
    echo '<input class="button" type="submit" name="Deletedomain" value="Delete" >';
    ?>


    page1.php

    Code php : 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
     
    <html>
    <head>
    <link href="css/styles.css" rel="stylesheet" type="text/css" />
    <script LANGUAGE="Javascript" SRC="js/functions.js"></script> 
    <script LANGUAGE="Javascript" SRC="js/ajax_refresh_list.js"></script>
    </head>
    <body id="included-pages">
    <?php
    include('db/mysql_db.php');		
    echo '<form name="showdom" method="post" action="" >';
    echo '<div id="id_listcat">';
    echo '<input type="radio" name="list_type" value="domain" checked="checked" /><label>domain</label>&nbsp';
    echo '<input type="radio" name="list_type" value="url" /><label for="url">url</label></br></br>';
     
    echo '<input type="radio" name="filter_type3" value="0" checked="checked" /><label>whitelist</label>&nbsp';
    echo '<input type="radio" name="filter_type3" value="1" /><label>blacklist</label></br></br>';
     
    echo '<select size=1 name="selectcompany2" id="id_selectcompany2" onChange="makeRequest1(\'RepPhpAjax_deldom.php\',\'id_selectcompany2\',\'id_listdom\',\'filter_type3\')">'; 
    echo '<option>Select: </option>';
    $result_recherche=mysql_query("SELECT distinct company_location FROM company_conf ORDER BY company_location" ) or die ("Error: ".mysql_error());
    $nombre_enr=mysql_num_rows($result_recherche);
    while ($row=mysql_fetch_assoc($result_recherche)){
    ?>
    <option value="<?php echo $row['company_location']?>">
    <?php echo $row['company_location']?></option>
    <?php
    }				
    echo '</select><br><br>'; 
    echo '</div>';
    echo '<div id="id_listdom">';	
    echo '<select name="selectdom[]" id="id_selectdom" size="10" multiple="multiple">';
    echo '<!-- ici sera charge la reponse mode texte de PHP à la request AJAX -->';
    echo '</select><br>';
    if(isset($_POST['Deletedomain']))
    {
    $list_type=$_POST['list_type'];
    echo $list_type;
    echo $_POST['selectcompany2'];
    echo $_POST['selectdom'];
    echo $_POST['filter_type3'];
    foreach ($_POST['selectdom'] as $urlordomain_selected) {
    mysql_query("delete FROM Custom_URL where company_location='".$_POST['selectcompany2']."' and $list_type=$urlordomain_selected and type='".$_POST['filter_type3']."'") or die ("Error: ".mysql_error());
    }
    }
    echo '</form>';			
    mysql_close($conn);
    ?>                 
    </body>
    </html>

    Et le code html généré:

    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
    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
     
    <html>
    <head>
    <link href="css/styles.css" rel="stylesheet" type="text/css" />
    <script LANGUAGE="Javascript" SRC="js/functions.js"></script> 
    <script LANGUAGE="Javascript" SRC="js/ajax_refresh_list.js"></script>
    <script>  
    $(document).ready(function(){   
            // When a link is clicked  
            $("a.tab").click(function () {    
                    // switch all tabs off  
                    $(".active").removeClass("active");  
                    // switch this tab on  
                    $(this).addClass("active");  
                    // slide all elements with the class 'content' up  
                    $(".content").slideUp();  
                    // Now figure out what the 'title' attribute value is and find the element with that id.  Then slide that down.  
                    var content_show = $(this).attr("title");  
                    $("#"+content_show).slideDown();          
            });       
    });  
     </script> 
     </head>
    <body id="included-pages">
    <div class="container">
    	<ul class="tabs">
    	<li><a href="#tabs-1">Show Domain/URL</a></li>
    	</ul>		
    	<div class="tab_container">
    		<div id="tabs-1" class="tab_content">
    			<form name="showdom" method="post" action="" >
    			<div id="id_listcat">
    				<input type="radio" name="list_type" value="domain" checked="checked" /><label>domain</label>
    				<input type="radio" name="list_type" value="url" /><label>url</label></br></br>
    				<input type="radio" name="filter_type3" value="0" checked="checked" /><label>whitelist</label>
    				<input type="radio" name="filter_type3" value="1" /><label>blacklist</label></br></br>
    				<select size=1 name="selectcompany2" id="id_selectcompany2" onChange="makeRequest1(\'RepPhpAjax_deldom.php\',\'id_selectcompany2\',\'id_listdom\',\'filter_type3\')">
    				<option>Select: </option>					
    				<option value="test1">test</option>
    				<option value="test2">test2</option>
    				</select><br><br>
    			</div>
    			<div id="id_listdom">
                            <select name="selectdom[]" id="id_selectdom" size="10" multiple="multiple">
    				<!-- ici sera charge la reponse mode texte de PHP ? la request AJAX -->
                            </select><br>
    			</div>
    			</form>                 
    		</div>
    	</div>
    </div>
    <body>
    </html>

  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
    Par défaut


    J'ai pas le temps de tous lire ton code mais une piste:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var secondSelect= document.getElementById("idSecondSelect");
    for (var i = 0; i < secondSelect.options.length; i++){
       if (secondSelect.options[i].selected){
           secondSelect.removeChild(secondSelect.options[i]);
           // ou bien
          //secondSelect.options[i] = null;
          i--;
       }
    }
    A+.

  3. #3
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 17
    Par défaut
    Salut, je vais tester sa merci!

Discussions similaires

  1. [AJAX] Liste liées et boutons radio
    Par neg12 dans le forum AJAX
    Réponses: 10
    Dernier message: 20/10/2011, 14h47
  2. [AJAX] Listes liées
    Par oranocha dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/02/2007, 06h59
  3. [AJAX] listes liées : faire une redirection
    Par _nico42_ dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/10/2006, 13h28
  4. [AJAX] liste liée ajax: s'iou plait, cherchez l'erreur
    Par redwire dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/09/2006, 20h26
  5. [AJAX]Listes liées multiples
    Par Schuss dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 27/06/2006, 16h31

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