Bonjour à tous, j'ai un petit problème, je recherche un moyen de faire une conditions sur une requête ajax suivant un paramètres post.
Je m'explique :
J'ai un menu déroulant qui contient 3 options, suivant l'option choisie je retourne des données très différente en JSON, jusque la pas de problème.
Mais je cherche un moyen de connaitre la valeur du post pour faire une condition afin choisir le type de résultat.
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
$("#forms-plugins-hmenu-searchlink-catalog").submit(function(){
			$(this).ajaxSubmit({
	    		url:'/admin/plugins.php?name=hmenu&hlang='+idlang,
	    		type:"post",
	    		dataType:"json",
	    		resetForm: true,
	    		beforeSubmit:function(){
	    			$('#result-search-hmenu-link').html('<img class="loader-block" src="/framework/img/square-circle.gif" />');
	    		},
	    		success:function(j) {
					$('#result-search-hmenu-link').empty();
					var tablecat = '<table id="table_search_product" class="table-widget-product">'
						+'<thead><tr style="padding:3px;" class="ui-widget ui-widget-header">'
						+'<th><span class="lfloat magix-icon magix-icon-h1"></span>Titre</th>'
						+'<th><span class="lfloat ui-icon ui-icon-flag"></span></th>'
						+'<th><span class="lfloat ui-icon ui-icon-link"></span></th>'
						+'</tr></thead>'
						+'<tbody>';
					tablecat += '</tbody></table>';
					$(tablecat).appendTo('#result-search-hmenu-link');
					if(j === undefined){
						console.log(j);
					}
					if(j !== null){
						$.each(j, function(i,item) {
							if(item.iso != null){
								flaglang =item.iso;
							}
							return $('<tr>'
							+'<td class="medium-cell">'+item.title+'</td>'
							+'<td class="small-icon">'+flaglang+'</td>'
							+'<td>'+item.uri+'</td>'
							+'</tr>').appendTo('#table_search_product tbody');
						});
					}else{
						return $('<tr>'
						+'<td class="medium-cell"><span class="lfloat ui-icon ui-icon-minus"></span></td>'
						+'<td class="small-icon"><span class="lfloat ui-icon ui-icon-minus"></span></td>'
						+'<td class="small-icon"><span class="lfloat ui-icon ui-icon-minus"></span></td>'
						+'</tr>').appendTo('#table_search_product tbody');
					}
	    		}
	    	});
			return false; 
		});
Donc ici je retourne un tableau bien distinct, mais je souhaite en avoir 3 et que suivant le paramètre du select passée en post j'affiche un type de tableau.
Genre si $post categorie tu retourne le tableau 3 colonnes avec tel données de résultat, sinon tu retourne un tableau 5 colonnes avec d'autres données.
Exemple avec le deuxième tableau de résultat n'ayant rien avoir avec le premier :
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
 
$('#result-search-hmenu-link').empty();
					var tablecat = '<table id="table_search_product" class="table-widget-product">'
						+'<thead><tr style="padding:3px;" class="ui-widget ui-widget-header">'
						+'<th><span class="lfloat magix-icon magix-icon-h1"></span>Titre</th>'
						+'<th><span class="lfloat ui-icon ui-icon-flag"></span></th>'
						+'<th><span class="lfloat ui-icon ui-icon-t"></span></th>'
						+'<th><span class="lfloat ui-icon ui-icon-t"></span></th>'
						+'<th><span class="lfloat ui-icon ui-icon-link"></span></th>'
						+'</tr></thead>'
						+'<tbody>';
					tablecat += '</tbody></table>';
					$(tablecat).appendTo('#result-search-hmenu-link');
					if(j === undefined){
						console.log(j);
					}
					if(j !== null){
						$.each(j, function(i,item) {
							if(item.iso != null){
								flaglang =item.iso;
							}
							return $('<tr>'
							+'<td class="medium-cell">'+item.title+'</td>'
							+'<td class="small-icon">'+item.category+'</td>'
							+'<td class="small-icon">'+flaglang+'</td>'
							+'<td>'+item.uri+'</td>'
							+'</tr>').appendTo('#table_search_product tbody');
						});
					}else{
						return $('<tr>'
						+'<td class="medium-cell"><span class="lfloat ui-icon ui-icon-minus"></span></td>'
						+'<td class="small-icon"><span class="lfloat ui-icon ui-icon-minus"></span></td>'
						+'<td class="small-icon"><span class="lfloat ui-icon ui-icon-minus"></span></td>'
						+'</tr>').appendTo('#table_search_product tbody');
					}
Donc suivant l'élément sélectionné dans le menu déroulant et après avoir cliquer sur le bouton me retourner un résultat complètement différent voir ma source html
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
<select id="catalog" name="catalog">
										<option value="category">Catégorie</option>
										<option value="subcategory">Sous catégorie</option>
										<option value="product">Produits</option>
									</select>
									<input type="text" name="post_search" id="post_search" class="inputtext ui-corner-all" value="" size="30" />
									<input type="submit" value="envoyer" />
Edit j'ai trouver une solution en ajoutant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
var selected = $('#catalog option:selected').val();
juste après le submit()