Mêler Javascript/PHP - faire bouton lien mort

Fermé
Baptiste - 2 oct. 2009 à 16:00
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 - 2 oct. 2009 à 22:37
Bonjour, je voudrais savoir comment faire un bouton "lien mort".
Le membre clique sur un bouton, et sa enregistre dans la base de données que c'est un lien mort.
Seulement je souhaite qu'il n'y ai pas passage vers un formulaire ou réactualisation de la page, voilà pourquoi j'ai pensé au javascript, comme on en voit très souvent un peu partout.
Les membres n'ont qu'à juste cliquer sur un bouton, et sa affiche un petit message à la place de ce dernier une fois cliqué, comme merci.

Seulement je ne connais pas le Javascript, quelqu'un saurait-il comment on fait ?
J'ai les constantes $auteur (qui vaut le pseudo du membre qui dit que c'est un lien mort, grace à une session)
et $valeur (qui vaut 1 si lien mort) ainsi que $id qui est l'ID de la page avec lien mort.
Comment faire pour, lorsque le membre clique, il y a un UPDATE (dans table articles) du champs (lien mort) ='$valeur' (donc 1), auteur du signalement ='$auteur' WHERE ID ='$id' ?
Qu'après avoir cliqué un "merci" apparaisse.
Voilà, c'est juste cela, sa ne doit pas être compliqué à réaliser, si on maîtrise Javascript, moi je n'y connait vraiment rien ^^.

Merci d'avance et bonne journée à vous tous.
A voir également:

11 réponses

letoine Messages postés 1382 Date d'inscription dimanche 5 août 2007 Statut Membre Dernière intervention 31 mai 2015 318
2 oct. 2009 à 17:04
Dans ce cas c'est plus vraiment du Javascript si du PHP mais de l'AJAX.
Du javascript qui modifie la base de données en fait

Mais c'est assez compliqué, essaye de te renseigner sur google
0
Utilisateur anonyme
2 oct. 2009 à 17:07
regarde un peu par là :
http://www.editeurjavascript.com/scripts/scripts_formulaires_3_543.php

en effet c'est du AJAX qu'il faut, et ton application fonctionne a peu près comme celle-ci.
Bonne Chance ;-)
0
Merci beaucoup Letoine et RD9.

Cependant, le script que tu m'a fourni RD9 est certes très bien (justement il n'y a pas longtemps je cherchais exactement cela) mais pour le coup je ne sais pas comment le modifier en ce que je veut.
Moi je veut un bouton sur lequel appuyer pour modifier la valeur (par défaut vide) du champs lien_mort et mettre 1, là c'est un champs.
De plus, il vérifie, mais comment faire ensuite pour valider ? Sa c'est pour le cas du script, mais dans mon problème, ce n'est pas pareil, il suffit d'appuyer et c'est envoyer, il n'y a pas de champs et ensuite de "submit".

Mais merci beaucoup pour ces précieuses aide.

J'espère que quelqu'un pourra m'aider, je vous souhaite de passer une bonne journée.
0
Utilisateur anonyme
2 oct. 2009 à 20:56
Pardonne-moi si je n'ai pas bien compris, mais tu veux en fait que quand on clique sur un bouton, la valeur d'un champ devienne "1" ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
letoine Messages postés 1382 Date d'inscription dimanche 5 août 2007 Statut Membre Dernière intervention 31 mai 2015 318
2 oct. 2009 à 21:23
Ca serait pas plus logique de creer une nouvelle entrée avec le nom du lien et le pseudo de l'utilisateur. ?
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
2 oct. 2009 à 21:37
et quel est l'interet de tout ça ???

utiliser ajax est certes obligatoire si tu veut inserer des trucs dans une BD sans recharger la page, mais pourqoui inserer que c'est un lien mort ??? autant mettre un alert sur ton bouton
0
Utilisateur anonyme
2 oct. 2009 à 21:41
J'allais le dire =D
0
En fait, ce que je cherche à faire est très simple (dans ma tête en fait );

je cherche simplement à ce que, lorsqu'une personne clique sur un bouton, sa change la valeur d'un champs dans ma BDD sans réactualiser la page, voilà tout, pour faire plus simple .

Après j'avais pensé à l'option lien mort, mais cette option pourra me servir dans plein d'autre cas.

Le membre clique sur un lien, sa envoie la valeur pré-définie dans la page de l'article dans le champs qui va avec, sa m'ajoute dans le champs par exemple 'auteur_signalement' le pseudo grace aux sessions ainsi que l'ID de la page sur laquelle il est (car en faite toute mes pages avec mes articles ont une adresse comme: http://monsite.com/page.php?id=##) je peut donc faire à chaque fois un WHERE ID = '.mysql_real_escape_string($_GET['ID'])

Seulement je ne connais pas du tout AJAX, donc je ne sais pas comment envoyer la nouvelle valeur ainsi que les infos complémentaires rien qu'en ne cliquant sur un bouton.
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
2 oct. 2009 à 21:57
????
decidement cette semaine y'a que des question bizarre... lol !!

bon imaginons je suis membre de ton site je clique une fois sur ton bouton, cela va changer mon champ qui va passr à 1 (par exemple)

moi j'aime bien cliquer sur des boutons , je reclique une autre fois qu'est ce qui ce passe vu que mon champ est déjà à 1 ??

je vois absolument pas l'interet de faire un script en ajax, bien que cela ne soit pas excessivement compliqué, pour savoir qui a cliqué sur un bouton qui ne mene nul part.
0
Merci de ta réponse lewis34,
alors en effet, comme cela, ma question peut paraître "bizarre",
en fait, le champs qui contiendra la valeur est en enum avec soit '0' soit '1'.

Donc, une fois cliqué sur le bouton, la valeur sera de 1, et même en recliquant, comme il n'y a qu'un bouton, ce sera toujours 1 (la valeur ne reviendra donc plus à 0).

Je veut juste savoir comment faire pour:

le membre clique sur le bouton, la valeur du champs est modifiée et passe en 1 au lieu du 0, dans le champs 'membre_signaleur' son pseudo soit enregistré (envoie grace aux sessions) et que l'id de la page, accèssible grace au: WHERE ID = '.mysql_real_escape_string($_GET['ID']) soit enregistrée dans le champs 'id'.

C'est tout simple en fait, mais à écrire c'est un peu plus compliqué.
Mais en fait sa peut servir à tout un tas de choses, j'ai dit "lien mort" car en fait j'ai trouvé ce système sur un site dans lequel sa servait à signaler un lien mort, malheureusement comme l'AJAX est une combinaison dont le PHP on ne peut avoir le code.

Merci encore de votre aide, si on pouvait m'indiquer comment faire ce sera vraiment aimable de votre part.
Bonne soirée.
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
2 oct. 2009 à 22:37
humm!!!
meme si je trouve pas ça logique essaye ce p'tit bout de code tapé en 2/2

sur ton bouton tu met onclick="lienmort();"

ensuite dans un fichier que tu va applé fonction.js (il faudra l'appeler en debut de ta page ou alors tu met ce code entre <head> et </head> tu mettra ce code
function lienmort()
{
var xhr_object = null; 
	     
	   if(window.XMLHttpRequest) // Firefox 
	      xhr_object = new XMLHttpRequest(); 
	   else if(window.ActiveXObject) // Internet Explorer 
	      xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
	   else { // XMLHttpRequest non supporté par le navigateur 
	    //  alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); je commente l'alert
	      return; 
	   } 
	 
	   xhr_object.open("POST", "tonfihierdetraitementphp", true);
/* il faudra creer unfichier php ou tu va traiter tes données*/
	     
	   xhr_object.onreadystatechange = function() { 
	      if(xhr_object.readyState == 4) {
			 //alert(xhr_object.responseText); // DEBUG MODE
	         eval(xhr_object.responseText);
		  }
	   } 
	 
	   xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

	   xhr_object.send(vis);
	//alert(xhr_object.responseText);
}



et dans le fichier php nouvellement crée tu met ceci
<?PHP

print_r($_POST); //pour verifier que tu recois bien tes variables

/*
et à partir de la tu fait tes requetes  inserion update etc..
?>


ça c'est un exemple c'est pas dis que ça marche mais c'est le principe, la j'envoie les variables par post
hr_object.open("POST", "tonfihierdetraitementphp", true);

tu peut aussi les envoyer par get dans ce cas il te faut definir les varaibles avant
du style
var var1=document.getElementById("**").value;
var var2=document.getElementById("**").value;
et ensuite 
geturl='var1=' + var1+'&var2='+var2;
xhr_object.open("GET", "tonfihierdetraitementphp?'+geturl+' ", true);
0