11550 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je n'ai pas pour habitude de demander de l'aide mais la je sèche Smiley ohwell
Je débute en ajax et je souhaite faire simplement passer un div d'un statut '0' à un statut '1' le tout dynamiquement.

Mon problème est que je n'arrive pas à faire passer plusieurs variables dans ma fonction ajax, je ne sais pas par quel moyen les faires passer afin de les récupérer pour les réafficher grace à html()

Voici mon code html onclick :

<a title="Valider cette tâche" class="tooltip" onclick="valid(\''.$id_valid.'\');">
<img "src="imgs/icones/valid.png" alt="Valider" />
</a>


J'ai essayer de cette manière:

<a title="Valider cette tâche" class="tooltip" onclick="valid(\''.$id_valid.'\');valid(\''.$statut.'\');valid(\''.$contenu.'\');">
<img "src="imgs/icones/valid.png" alt="Valider" />
</a>

Mais ca ne marche pas Smiley ohwell

Mon fichier JS :

function valid(id){
	$.ajax({
		type: "POST",
		url: "action.php",
		data: "valid=valid&id="+id,
		success: function(msg){
			if (msg == "valid"){
				$("#valid_"+id).empty().html();
			}
		}
	});
}

C'est ici qu'il me faudrait pouvoir mettre mes div dans html() :
Du genre :

function valid(id,statut,contenu)
$("#valid_"+id).empty().html(<div id="+id+"><div id="+statut+"></div><div id="+contenu+"></div></div>);


Et voici mon code php :

if (isset($_POST['valid']) and $_POST['valid']=="valid"){
	$id = $_POST['id'];
	mysql_query("UPDATE taches SET valid='1' WHERE id='".$id."'");
	echo 'valid';
}


Dans l'espoir de comprendre mes erreurs car j'ai du mal a faire ce que je veux :S

Merci d'avance.
Modifié par Psyrus (08 Dec 2010 - 08:41)
Salut,

Tu appelles plusieurs fois ta fonction avec une valeur différente. Pourquoi donc ?


onclick='valid(var1,var2,var3);'



function valide(var1,var2,var3){
data: "valid=valid&id="+var1+"&valid2="+var2+"&var3="+var3,
}


Ou un truc approchant
Modifié par ffwrude (30 Nov 2010 - 13:18)
Finalement j'ai utilisé l'id au lieu d'un onclick afin de récupérer mes variables.


<a class="valider tooltip" id="'.$id_valid.'" title="Valider cette tâche">
      <img "src="imgs/icones/valid.png" alt="Valider" />
</a>


$(".valider").click(function (){
	var id= $(this).attr("id");
	var statut= $("#statut_"+id).html();
	var contenu= $("#contenu_"+id).html();
	var date= $("#date_"+id).html();
	$.ajax({
		type: "POST",
		url: "action.php",
		data: "valid=valid&id="+id,
		success: function(msg){
			if (msg == "valid"){
				$("#ligne_"+id).empty();
				$("#new_valid").html('<div class="ligne_tache_valid" id="ligne_'+id+'"><div class="tache_left_valid"><a class="valider" id="'+id+'" title="Remettre cette tâche en ligne" class="tooltip"><img "src="imgs/icones/effectuer.png" alt="Tâche effectué"/></a></div><div class="tache_repeat_valid" ><div id="statut_'+id+'">'+statut+'</div> <div id="contenu_'+id+'">'+contenu+'</div><div id="date_'+id+'" style="float: right;">'+date+'</div></div><div class="tache_right_valid"><a class="tooltip supprimer" title="Supprimer cette tâche" id="'+id+'" onclick="confirm(\'Etes vous sûre de bien vouloir supprimer cette tâche ?\');"><img src="imgs/icones/suppr_white.png" alt="Supprimer tâche" /></a></div></div>');
			}
		}
	});
});



Merci pour l'astuce mais c'est justement cette syntaxe qui ne marcher pas Smiley ohwell