Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/10/2011, 15h10   #1
Invité de passage
 
Inscription : mars 2011
Messages : 15
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 15
Points : 3
Points : 3
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 :
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 :
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 :
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 :
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>
neg12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 15h41   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 132
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 132
Points : 7 265
Points : 7 265


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

Code :
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+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 23h00   #3
Invité de passage
 
Inscription : mars 2011
Messages : 15
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 15
Points : 3
Points : 3
Salut, je vais tester sa merci!
neg12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h13.


 
 
 
 
Partenaires

Hébergement Web