2010-08-01 5 views
0

ce mon code avec dans un tableau que je devais faire le menu d'arbre dans une tablejquery ajouter sur la matrice sont proportionnels

$myqueryPO->magGrp = array("[grp] => MAIN, [grp] => P1, [grp] => P3") 
foreach ($myqueryPO->magGrp as $dataArray) { 
$myGroup = $dataArray[] = $dataArray['grp']; 
    <tr class="'.$myGroup.'"> 
     <td><a href="#" id="'.$myGroup.'" class="clickMEdata">'.$myGroup.'</a></td> 
     <td></td> 
    </tr> 

} 


$(function($) { 
$(".clickMEdata").click(function(){ 
var eleMent = $(this); 
var mySelected = eleMent.attr("id"); 
var info = "myID=" + mySelected; 
$.ajax({ 
type: "POST", 
url: "ScheduleOfManPower.php", 
data: info, 
success: function(data){  
var loadUrl = "ScheduleOfManPower.php"; 
$("."+mySelected).append().load(loadUrl, info); 
} 
}); 
$("."+mySelected).toggle("slow"); 
}); 
}); 

censé être le ScheduleOfManPower.php est <tr><td>hi</td><td>foo</td></tr> mon problème, il semble ma fonction append ne marche pas travailler mon table ne correspond pas ce que je m'attendais sa seule requête dans le 1er <td></td> mon deuxième problème est le $("."+mySelected).toggle("slow"); il semble que je dois double-cliquer dans l'ordre de moi pour montrer ma requête .. :(

+0

Est-ce le code réel que vous utilisez? Parce que certaines choses ont vraiment tort. –

Répondre

0

i get it ^^ .. merci u nick

$(function($) { 
$(".clickMEdata").toggle(
function(){ 
var eleMent = $(this); 
var mySelected = eleMent.attr("id"); 
var myHuraFrom = eleMent.attr("huraUna"); 
var myHuraTO = eleMent.attr("huraTwo"); 
var info = "myID=" + mySelected+ "&MaHuraFrom="+myHuraFrom+ "&myHuraTO="+myHuraTO; 
$.ajax({ 
type: "POST", 
url: "ScheduleOfManPower.php", 
data: info, 
success: function(data){   
eleMent.closest("tr").after(data); 
} 
});          
}, 
function(){ 
$(".activity").hide(); 
}); 
}); 
1

Je ne suis pas sûr de la question ce qui est censé se passer, mais vous avez quelques problèmes sur la chauve-souris $("."+mySelected) est un .class sélecteur, pas un sélecteur ID. Vous voulez que cela recherche par ID:

$("#"+mySelected) 

Mais il n'y a pas besoin pour cela, juste garder une référence, comme ceci:

$(function($) { 
    $(".clickMEdata").click(function(){ 
    var eleMent = $(this); 
    $.ajax({ 
     type: "POST", 
     url: "ScheduleOfManPower.php", 
     data: { myID: eleMent.attr("id") }, 
     success: function(data){ 
     eleMent.closest('tr').after(data); 
     } 
    }); 
    eleMent.toggle("slow"); 
    }); 
}); 

Cela a quelques autres changements/correctifs, vous pouvez passer data comme un objet faisant ce nettoyeur. Si vous souhaitez ajouter les données retournées, vous devez utiliser data dans votre fonction success, en appelant .load() va tirer une autre requête AJAX différente, ce qui n'a pas beaucoup de sens, mais étant donné que vous le charger les deux façons, je suis Je ne sais pas exactement ce que vous recherchez ... mais je pense ci-dessus est-il.

Il y a encore un gros changement, vous avez ajouté un <tr> dans un <a> qui n'est pas valide du tout, je l'ai changé pour l'insérer comme ligne suivante. Celui-ci, je ne sais pas vraiment, mais c'est la seule chose qui est proche de HTML valide, alors s'il vous plaît élaborer si ce n'est pas ce que vous recherchez.

+0

tnx pseudo ce code est parfait mais un autre problème est l'éléme quand je l'ai excisé il va cacher l'eleMent et quand je désactiver le eleMent.toggle ("lent"); il va dupliquer les données en cliquant dessus. – mapet

+0

@mapet - Pouvez-vous être un peu plus précis? Je suis maintenant vous suite de la description ... –

+0

désolé ^^ quand j'applique le "#clickMEdata" il excutera eleMent.toggle ("lent"); mais il cachera le var = $ ELement (this); .. et mon autre problème est quand je double cliquez sur l'élément = $ (this) est dupliqueront la requête .. – mapet

Questions connexes