<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Javascript]]></title><description><![CDATA[Javascript]]></description><link>https://melinyel.net/category/42</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 03:51:29 GMT</lastBuildDate><atom:link href="https://melinyel.net/category/42.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 18 Nov 2014 17:32:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Des alertes stylisées avec SweetAlert]]></title><description><![CDATA[&lt;p&gt;
Les alertes en Javascript ne sont pas vraiment stylées. C'est pourquoi SweetAlert a été créé, cette librairie seulement 10kb rend vos alert() et confirm() plus jolie, plus flat quoi !  &lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;
Plutôt que ça :
&lt;/p&gt;
&lt;p&gt;
 
&lt;/p&gt;
&lt;p&gt;
&lt;img alt="vZn6NJ8.png?1" src="https://i.imgur.com/vZn6NJ8.png?1"/&gt;&lt;/p&gt;
&lt;p&gt;
 
&lt;/p&gt;
&lt;p&gt;
On a ça :
&lt;/p&gt;
&lt;p&gt;
 
&lt;/p&gt;
&lt;p&gt;
&lt;img alt="WVCqRG3.png?1" src="https://i.imgur.com/WVCqRG3.png?1"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;
&lt;u&gt;Pour l'installer :&lt;/u&gt;
&lt;/p&gt;
&lt;p&gt;
 
&lt;/p&gt;
&lt;p&gt;
Télécharger le dépôt &lt;a href="https://github.com/t4t5/sweetalert" rel="external nofollow"&gt;GitHub&lt;/a&gt; ou installer la librairie avec la console :
&lt;/p&gt;
&lt;pre class="ipsCode prettyprint prettyprinted"&gt;
&lt;span class="pln"&gt;$ bower install sweetalert&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Maintenant, au lieu d'utiliser la fonction alert() vous utiliserez swal()  &lt;/p&gt;
&lt;p&gt;
Vous pourrez ajouter un titre, modifiez les couleurs, etc...et même mettre une image comme vous verrez dans le dernier exemple sur &lt;a href="http://t4t5.github.io/sweetalert/" rel="external nofollow"&gt;le site officiel&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Regardez la documentation pour avoir des informations sur ces options.
&lt;/p&gt;
&lt;p&gt;
 
&lt;/p&gt;
&lt;p&gt;
J'espère que ça peut vous être utile.  &lt;/p&gt;
]]></description><link>https://melinyel.net/topic/1335/des-alertes-stylisées-avec-sweetalert</link><guid isPermaLink="true">https://melinyel.net/topic/1335/des-alertes-stylisées-avec-sweetalert</guid><dc:creator><![CDATA[Eloha]]></dc:creator><pubDate>Tue, 18 Nov 2014 17:32:50 GMT</pubDate></item><item><title><![CDATA[Technique d'AJAX simple sans plugin]]></title><description><![CDATA[&lt;p&gt;Bonjour, voici une petite méthode pour faire de l'ajax simple sans aucun plugin : le &lt;abbr title="Dynamic Script Loading"&gt;DSL&lt;/abbr&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Dans l'idée nous allons apprendre à créer une page qui affiche un nombre et un bouton pour incrémenter ce nombre.&lt;/p&gt;
&lt;p&gt;Afin de stocker ce nombre, nous allons le ranger bien au chaud dans une &lt;abbr title="Base de donnée"&gt;BDD&lt;/abbr&gt;.&lt;/p&gt;
&lt;p&gt;Notre page devra donc :&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;incrémenter ce nombre dans la BDD sans rechargement de la page&lt;/li&gt;
&lt;li&gt;mettre à jour l'affichage du nombre, toujours sans recharger la page (sinon c'est trop simple    )&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;L'utilisation d'une BDD juste pour un nombre peut paraitre exhaustive, mais l'idée est d'appliquer la méthode avec plusieurs nombres, possédants chacun un id... on verra ça après  ^_^ &lt;/p&gt;
&lt;p&gt;Nous allons utiliser deux pages : index.php et incrementation.php.&lt;/p&gt;
&lt;p&gt;Voici index.php :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
&lt;?php
$bdd = new PDO('mysql:host=kpsoftware.fr;dbname= toto','jean-michel','fjhbqfkqsfhgsjkgbs');
?&gt;      /* connexion à la BDD */
&lt;div style="text-align: center;"&gt;
&lt;span class="leNombre"&gt;
&lt;?php
$nombre=$bdd-&gt;query('SELECT nombre FROM nombre');
$nombre=$nombre-&gt;fetch();
echo $nombre['nombre'];
?&gt;
&lt;/span&gt;     /* on à notre nombre ! */
&lt;input value="Plus un !" type="button"/&gt;
&lt;/div&gt;
&lt;script&gt;   /* les choses sérieuses commencent ici  */
function addEvent(element, event, func){
if (element.attachEvent) {
element.attachEvent('on'+event, func);
} else {
element.addEventListener(event, func, true);
}
}    /* ceci est notre fonction pour ajouter des évènement en javascript */
(function(){
var elements = document.getElementsByTagName('input')
for (var i=0;i&lt;elements.length;i++){
addEvent(elements[i],'click',function(e){     /* on ajoute un évènement sur les "input" */
var target=e.target || e.srcElement;
if(target.value == 'Plus un !'){     /* quand un "input" est cliqué, on teste sa "value" */
/* si cette "value" est "plus un !", alors on créer un script, dont la source est une page php : incrementation.php. Il ne reste plus qu'à l'ajouter ! */
var scriptElement = document.createElement('script');
scriptElement.src ='incrementation.php';
document.body.appendChild(scriptElement);

}
});
}
})();    /* à ce stade, incrementation.php à été exécuté, je vous invite à aller voir cette page avant de lire la fin de index.php */
function refreshNombre(newNombre){
var spanElements = document.getElementsByTagName('span');
var newSpan = document.createTextNode(' ' + newNombre + ' ');
/* on créer notre nouveau span contenant le nouveau nombre */
for (var i=0;i&lt;spanElements.length;i++){
var classSpan = spanElements[i].className;
if (classSpan == "leNombre"){         /* on test pour trouver le bon span */
spanElements[i].replaceChild(newSpan.cloneNode(false),spanElements[i].firstChild);
/* et là on remplace le firstChild (le texte) de spanElements[i] ( le span contenant l'ancien nombre ) par un clone de newSpan (celui créer juste au dessus contenant le nouveau nombre */
}
}
}
&lt;/script&gt;
&lt;/pre&gt;
&lt;p&gt;voici maintenant incrementation.php :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
&lt;?php
header("Content-type: text/javascript");
$nombre=$bdd-&amp;gt;query('SELECT nombre FROM nombre');
$nombre=$nombre-&amp;gt;fetch();
$newNombre=$nombre['nombre']+1; 

    //on récupère le nombre

$nombre-&amp;gt;closecursor();

$upNbr=$bdd-&amp;gt;prepare('UPDATE nombre SET nombre = :newNombre');
$upNbr-&amp;gt;execute(array('newNombre'=&amp;gt;$newNombre));
$upNbr-&amp;gt;closecursor();

    // on l'incrémente

?&gt;
refreshNombre(&lt;?php echo $newNombre ?&gt;);
/* on execute enfin la dernière fonction de index.php qui va se charger de rafraichir le nombre sur la page, il n'y à eu aucun reload de la part du navigateur ! */
&lt;/pre&gt;
&lt;p&gt;Si les commentaires ne sont pas assez explicatifs dites-le moi ! je me ferais un plaisir de détailler tout ça !  ^_^ &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Bien, si vous avez compris l'idée de l'appel d'une page externe via JS pour exécuter un code php sans reload de page, vous avez tout compris. Mais pour exploiter pleinement la puissance du DSL et de la BDD, il nous faudrait avoir plusieurs bouton et nombres dynamiques.&lt;/p&gt;
&lt;p&gt;Pour cela il suffirait d'envoyer au script incrementation.php une id afin de transformer la requête SQL en :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
$upNbr=$bdd-&gt;prepare('UPDATE nombre SET nombre = :newNombre' WHERE id= :id);
$upNbr-&gt;execute(array('newNombre'=&gt;$newNombre, 'id'=&gt;$_GET['id']));
$upNbr-&gt;closecursor();
&lt;/pre&gt;
&lt;p&gt; et on change la fonction refresh pour qu'elle contienne un paramètre en plus : l'id&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
function refreshNombre(id,newNombre){
var spanElements = document.getElementsByTagName('span');
var newSpan = document.createTextNode(' ' + newNombre + ' ');
for (var i=0;i&lt;spanElements.length;i++){
var classSpan = spanElements[i].className;
var idSpan = classSpan.substring(classSpan.lastIndexOf('a')+1);
if (idSpan == id){
spanElements[i].replaceChild(newNombre.cloneNode(false),spanElements[i].firstChild);
}
}
}
&lt;/pre&gt;
&lt;p&gt;avec son appel :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
refreshNombre(&lt;?php echo $_GET['id']; ?&gt;,&lt;?php echo $newNombre; ?&gt;);
&lt;/pre&gt;
&lt;p&gt;Avez-vous vu la subtilité du : &lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
var idSpan = classSpan.substring(classSpan.lastIndexOf('a')+1); &lt;/pre&gt;
&lt;p&gt;?&lt;/p&gt;
&lt;p&gt;En fait, en HTML il est impossible de mettre un nom de class commençant par un chiffre...    du coup, on met un "a" devant et on utilise "substring" pour découper ce "a"&lt;/p&gt;
&lt;p&gt;on prend la dernière apparition de "a" et on ajoute 1 au rang, il ne nous reste plus que l'id !&lt;/p&gt;
&lt;p&gt;celui-ci est donc afficher sur index.php comme ceci :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
&lt;span class="a&lt;?php echo $nombre['id'];?&gt;"&gt; &lt;?php echo $nombre['nombre']; ?&gt; &lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;bien sûr la requere SQL change légèrement :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
SELECT * FROM nombre
&lt;/pre&gt;
&lt;p&gt;Voilà voilà ! DSL dans toute sa grandeur !    Si vous avez des questions n'hésitez pas !&lt;/p&gt;
]]></description><link>https://melinyel.net/topic/1028/technique-dajax-simple-sans-plugin</link><guid isPermaLink="true">https://melinyel.net/topic/1028/technique-dajax-simple-sans-plugin</guid><dc:creator><![CDATA[krimpatul]]></dc:creator><pubDate>Tue, 26 Aug 2014 12:17:10 GMT</pubDate></item><item><title><![CDATA[Override une fonction]]></title><description><![CDATA[&lt;p&gt;&lt;strong&gt;Override une fonction&lt;/strong&gt;&lt;br/&gt;
Dans un de mes récents projets j'ai eu besoin d'override la fonction Alert en javascript afin qu'elle affiche une popup stylisé, en accord avec le thème de mon site et qui ne peux pas être bloquée nativement.&lt;br/&gt;
L'idée peut paraitre facile mais je n'avais pas imaginé que l'on pouvait modifier une fonction membre de window donc voilà mon code fonctionnant avec un &lt;abbr title="Genre de popup dans le cas de bootstrap"&gt;modal&lt;/abbr&gt; bootstrap (Pour ce qui ne connaissent pas &lt;abbr title="Bootstrap Framework"&gt;bootstrap &lt;/abbr&gt;&lt;a href="http://getbootstrap.com/javascript/" rel="external nofollow"&gt;http://getbootstrap.com/javascript/&lt;/a&gt;). Bien que je ne connaissais pas la technique dans ce cas précis, je la classe tout de même comme base à avoir)&lt;br/&gt;
 &lt;/p&gt;
&lt;br/&gt;&lt;pre class="ipsCode prettyprint lang-auto"&gt;
    window.alert = function(message){
        $("#fast_alert_js").find("p").html(message);
        $(".modal").modal('show');
    }&lt;/pre&gt;
&lt;p&gt;L'argument message est celui de base de la fonction mais vous pouvez très bien rajouter des arguments.&lt;br/&gt;
Le but ici est donc d'afficher le message dans une balise de paragraphe. &lt;abbr title="Bootstrap Framework"&gt;Bootstrap &lt;/abbr&gt;se charge du reste.&lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;img alt="8QhGe.png" src="https://puu.sh/8QhGe.png"/&gt;&lt;/p&gt;
&lt;p&gt;Le rendu obtenu est ainsi bien mieux que celui de départ. Il vous permettras d'éviter de recréer une fonction pour une même utilité.&lt;br/&gt;
 &lt;br/&gt;
A noter que ce "tutoriel" ou plutôt code source utilise &lt;abbr title="Bibliothèque javascript"&gt;JQuery &lt;/abbr&gt;pour fonctionner&lt;br/&gt;
En passant : Si vous souhaitez utiliser ce même exemple appliqué à &lt;abbr title="Bibliothèque javascript"&gt;JQuery &lt;/abbr&gt;:&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
(function() {
var originMethod= jQuery.fn.setArray; //Sauvegarde de la fonction de base
jQuery.fn.setArray = function() { // Début de l'override
console.log( this, arguments ); // Log
return originMethod.apply( this, arguments ); // Exécution de la méthode originale
};
})();
&lt;/pre&gt;
&lt;p&gt;Code provenant de la documentation officielle. Il est basé sur la même base que le premier exemple.&lt;br/&gt;
Au lieu de simplement exécuter la fonction, il va simplement log l'événement avant d’exécuter normalement celle-ci.&lt;br/&gt;
 &lt;/p&gt;
&lt;p style="text-align:right;"&gt;Evaelis&lt;/p&gt;
]]></description><link>https://melinyel.net/topic/717/override-une-fonction</link><guid isPermaLink="true">https://melinyel.net/topic/717/override-une-fonction</guid><dc:creator><![CDATA[Evaelis]]></dc:creator><pubDate>Sat, 17 May 2014 21:51:54 GMT</pubDate></item><item><title><![CDATA[[AJAX] Introduction (+JQuery)]]></title><description><![CDATA[&lt;p&gt;
Salut all,
&lt;/p&gt;
&lt;p&gt;
Je me suis enfin motivé à faire une intro sur l'ajax et son utilisation simplifié avec JQuery.
&lt;/p&gt;
&lt;p&gt;
 
&lt;/p&gt;
&lt;p&gt;
Comme le veut la tradition du manque d'humour avec l'ajax:
&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p style="text-align:center;"&gt;
 
&lt;/p&gt;
&lt;p&gt;
&lt;img alt="2005.png" src="&lt;base_url&gt;/applications/sslimageproxy/interface/image.php?url=http://www.colgate.fr/PDP/Ajax/FR/About/Story/images/2005.png"/&gt;&lt;/p&gt;
&lt;p&gt;
Donc pour ceux qui ne savent pas ce qu'est l'ajax, en gros c'est à la place de faire recharger votre site pour quelques données vous faites une requêtes en arrière plan, c'est utile dans les shoutboxs ou pour faire certain effet sur les sites (par exemple).
&lt;/p&gt;
&lt;p&gt;
 
&lt;/p&gt;
&lt;p&gt;
L'ajax c'est du javascript rien à foutre de ce que vous dites et NON son utilisation par JQuery ne fait pas de vous un "dev" en ajax...
&lt;/p&gt;
&lt;p&gt;
 
&lt;/p&gt;
&lt;p&gt;
Comme je l'ai dis au dessus c'est l’exécution d'une requête en arrière-plan donc il faut l'initialiser &gt; configurer la requête &gt; l'envoyer (&gt; récupérer réponse)
&lt;/p&gt;
&lt;p&gt;
 
&lt;/p&gt;
&lt;p&gt;
Initialisation:
&lt;/p&gt;
&lt;p&gt;
 
&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto prettyprinted"&gt;
&lt;span class="kwd"&gt;var&lt;/span&gt;&lt;span class="pln"&gt; request&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt;
&lt;/span&gt;&lt;span class="kwd"&gt;if&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;window&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span&gt;XMLHttpRequest&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt;
request &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;new&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span&gt;XMLHttpRequest&lt;/span&gt;&lt;span class="pun"&gt;();&lt;/span&gt;&lt;span class="pln"&gt;
&lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;else&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;if&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;window&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span&gt;ActiveXObject&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="com"&gt;// Un petit test pour IE car ils savent pas faire comme les autres...&lt;/span&gt;&lt;span class="pln"&gt;
request &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;new&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span&gt;ActiveXObject&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="str"&gt;"Microsoft.XMLHTTP"&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;span class="pln"&gt;
&lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;else&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt;
alert&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="str"&gt;"Votre système d'exploitation internet ne semble pas supporter l'ajax.."&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;span class="pln"&gt;
&lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Envoyer une simple requête (comme si vous alliez sur la page):
&lt;/p&gt;
&lt;p&gt;
 
&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto prettyprinted"&gt;
&lt;span class="pln"&gt;request&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;open&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="str"&gt;"GET"&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;"fichier.php"&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;true&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;span class="pln"&gt;
request&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;send&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="kwd"&gt;null&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
donc vous avez dans ce cas 2 fonctions .open() et .send():
&lt;/p&gt;
&lt;p&gt;
-open(): vous "ouvrez" une requête enfin de lui expliquer comment elle doit s’exécuter en 3 paramètres:
&lt;/p&gt;
&lt;p&gt;
-- "GET" : type d'envoie de la requête
&lt;/p&gt;
&lt;p&gt;
-- "fichier.php" : le fichier/page sur le quel il va être exécute
&lt;/p&gt;
&lt;p&gt;
-- true : mode asynchrone
&lt;/p&gt;
&lt;p&gt;
 
&lt;/p&gt;
&lt;p&gt;
-send(): envoie de la requête dans ce cas présent il y a null car il n'y a aucun envoie de donnée
&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;
maintenant un envoie un peut plus complexe, on va faire un système d'inscription à un newsletter par requête post ._.
&lt;/p&gt;
&lt;p&gt;
code html (compliqué tousse
&lt;/p&gt;
&lt;p&gt;
 
&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto prettyprinted"&gt;
&lt;span class="tag"&gt;&lt;input&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="atn"&gt;id&lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="atv"&gt;"mail"&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="atn"&gt;type&lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="atv"&gt;"email"&lt;/span&gt;&lt;span class="tag"&gt;&gt;&lt;/span&gt;&lt;span class="pln"&gt;
&lt;/span&gt;&lt;span class="tag"&gt;&lt;input&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="atn"&gt;id&lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="atv"&gt;"send"&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="atn"&gt;type&lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="atv"&gt;"button"&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="atn"&gt;onClick&lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="atv"&gt;"&lt;/span&gt;&lt;span class="pln"&gt;inscription&lt;/span&gt;&lt;span class="pun"&gt;();&lt;/span&gt;&lt;span class="atv"&gt;"&lt;/span&gt;&lt;span class="tag"&gt;&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
El js (ajax):
&lt;/p&gt;
&lt;p&gt;
 
&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-html prettyprinted"&gt;
&lt;span class="pln"&gt;function inscription() {
var mail = document.getElementById("mail").value;
request.open("POST", "fichier.php", true);
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.send("?mail=" + mail);
request.onreadystatechange = function() {
if (request.readyState == 4 &amp;&amp; request.status == 200) {
alert(request.responseText);
}
}
}&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Dans cet exemple j'ai fais une fonction du nom d'inscription, le fichier "fichier.php" dit si l'inscription a été validé ou non,
&lt;/p&gt;
&lt;p&gt;
-open(): cette fois-ci ce n'est pas une requête GET mais POST donc je récupére les données en php avec $_POST[];
&lt;/p&gt;
&lt;p&gt;
-setRequestHeader(): fonction optionnel pour préciser des paramètres dans l'entête de la requête
&lt;/p&gt;
&lt;p&gt;
-send(): je mets en forme la variable que j'ai récupéré du nom de mail, les variables doivent être mit selon la norme RFC-1738 exemple : ?variable=123&amp;var2=Bonjour&amp;page=recherche&amp;patati=p atata
&lt;/p&gt;
&lt;p&gt;
-onreadystatechange : c'est l'eventement qui est généré lors de l'envoie des différents étapes de l'envoie
&lt;/p&gt;
&lt;p&gt;
-readyState et status : je test le stade de la requête pour voir si elle est valide::
&lt;/p&gt;
&lt;p&gt;
--readyState:
&lt;/p&gt;
&lt;p&gt;
--- 0 : requête non initialisé
&lt;/p&gt;
&lt;p&gt;
--- 1 : connexion au serveur établie
&lt;/p&gt;
&lt;p&gt;
--- 2 : requête envoyée
&lt;/p&gt;
&lt;p&gt;
--- 3 : traitement de la requête
&lt;/p&gt;
&lt;p&gt;
--- 4 : réponse reçu
&lt;/p&gt;
&lt;p&gt;
--status:
&lt;/p&gt;
&lt;p&gt;
--- 200: "Ok"... je sais pas comment expliquer xD &lt;/p&gt;
&lt;p&gt;
--- 404: page non trouvée
&lt;/p&gt;
&lt;p&gt;
-responseText : retourne la reponse de la requête sous forme de texte brut
&lt;/p&gt;
&lt;p&gt;
 
&lt;/p&gt;
&lt;p&gt;
et la version simplifiée (en JQuery):
&lt;/p&gt;
&lt;p&gt;
vous avez 3 possibilité qui reviennent presque au même : $.ajax, $.get et $.post, j'ai expliqué la différence au dessus (le $.ajax et similaire au $.get).
&lt;/p&gt;
&lt;p&gt;
 
&lt;/p&gt;
&lt;p&gt;
La syntaxe pour un simple envoie avec $.ajax:
&lt;/p&gt;
&lt;p&gt;
 
&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto prettyprinted"&gt;
&lt;span class="pln"&gt;$&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;ajax&lt;/span&gt;&lt;span class="pun"&gt;({&lt;/span&gt;&lt;span class="pln"&gt;url&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="str"&gt;"fichier.php"&lt;/span&gt;&lt;span class="pun"&gt;});&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
La syntaxe pour un simple envoie avec $.get et un petit message à la fin de l'envoie:
&lt;/p&gt;
&lt;p&gt;
 
&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto prettyprinted"&gt;
&lt;span class="pln"&gt;$&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="kwd"&gt;get&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="str"&gt;"fichier.php"&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;function&lt;/span&gt;&lt;span class="pun"&gt;()&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt;
alert&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="str"&gt;"requête envoyée"&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;span class="pln"&gt;
&lt;/span&gt;&lt;span class="pun"&gt;});&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
La syntaxe pour envoie avec variables avec $.post et recupération des données (fonctionnel avec $.get sans les variables entre {}):
&lt;/p&gt;
&lt;p&gt;
 
&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto prettyprinted"&gt;
&lt;span class="pln"&gt;$&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;post&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="str"&gt;"fichier.php"&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt;
page &lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;"mmotrick"&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt;
methode &lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;"ajax"&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt;
version &lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="lit"&gt;3&lt;/span&gt;&lt;span class="pln"&gt;
&lt;/span&gt;&lt;span class="pun"&gt;},&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;function&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;data&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; statut&lt;/span&gt;&lt;span class="pun"&gt;){&lt;/span&gt;&lt;span class="pln"&gt;
alert&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="str"&gt;"Réponse requête: "&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;+&lt;/span&gt;&lt;span class="pln"&gt; statut &lt;/span&gt;&lt;span class="pun"&gt;+&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;"# "&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;+&lt;/span&gt;&lt;span class="pln"&gt; data&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;span class="pln"&gt;
&lt;/span&gt;&lt;span class="pun"&gt;});&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
...
&lt;/p&gt;
]]></description><link>https://melinyel.net/topic/190/ajax-introduction-jquery</link><guid isPermaLink="true">https://melinyel.net/topic/190/ajax-introduction-jquery</guid><dc:creator><![CDATA[mars073]]></dc:creator><pubDate>Sun, 16 Mar 2014 20:30:24 GMT</pubDate></item><item><title><![CDATA[[JQuery] Evenement de base]]></title><description><![CDATA[&lt;p&gt;Salut all,&lt;br/&gt;
Aujourd'hui je vais vous montrer les événement de base des éléments en JQuery lié au clavier et à la souris.&lt;br/&gt;&lt;br/&gt;
Les événements les plus utilisés sont lié à la souris donc je vais commencer par cela, la disposition du code est expliquée dans mon intro donc je vais mettre moins de code... D:&lt;br/&gt;&lt;br/&gt;
petit exemple quand même avec l'event .click() en interaction avec un objet donc l'id est "MrPoke":&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
$("#MrPoke").click(function() {
// code à exécuter lors de l’événement
});
&lt;/pre&gt;
&lt;p&gt;Événements liés à la souris les plus utilisés:&lt;br/&gt;

.click() : à quoi ça sert quoi déjà... c'est quand on clique sur l'élément.&lt;br/&gt;
.dbclick() : double clique sur l'élèment.&lt;br/&gt;
.mousedown() : lorsque vous enfoncez un bouton de la souris sur l’élément.&lt;br/&gt;
.mouseup() : event successif à .mousedown(), c'est à dire que c'est lorsque que vous arrêtez d'enfoncer le bouton sur l’élément.&lt;br/&gt;
.mouseenter() : lorsque vous placez votre curseur sur l’élément ou un de ses enfants.&lt;br/&gt;
.mouseleave() : lorsque vous retirez votre curseur de l'élément.&lt;br/&gt;
.mousemove() : lorsque vous déplacez le curseur sur l'élèment.&lt;br/&gt;&lt;br/&gt;
Pour le clavier je vais donner un exemple de raccourcis clavier on va dire faire un mouvement de mon #MrPoke, je vous passe le code html, et css:&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
$(document).keypress(function(e) { // lorsque une touche est pressée sur le document ou un de ses enfantés en bref tout... avec une récupération d'entrée (la variable "e").
switch (e.which) { // on test l'entrée sous forme de chiffre
case 90: $("#MrPoke").stop().animate({top : '-=100px'}); break; // Si la touche est 90 (=z) on déplace #MrPoke vers le haut.
case 68: $("#MrPoke").stop().animate({left : '+=100px'}); break; // 68 = d
case 83: $("#MrPoke").stop().animate({top : '+=100px'}); break; // 83 = s
case 81: $("#MrPoke").stop().animate({left : '-=100px'}); break; // 81 = q
}
});
&lt;/pre&gt;
&lt;p&gt;Événements liés à la souris:&lt;br/&gt;
.keydown() : lorsque l'on appuie sur une touche.&lt;br/&gt;
.keyup() : lorsque l'on relâche la touche.&lt;br/&gt;
.keypress() : lorsque l'on presse une touche, continuel contrairement à .keydown().&lt;br/&gt;&lt;br/&gt;
et encore une fonction:&lt;br/&gt;
.focus() : lorsque l’élément est sélectionné.&lt;br/&gt;&lt;br/&gt;
ps: pour les raccourcis clavier je vous invite à cliquer sur &lt;a href="http://chief.over-blog.com/article-raccourcis-clavier-en-javascript-jquery-69187878.html" rel="external nofollow"&gt;ce lien&lt;/a&gt; ou il y a un tuto + liste&lt;br/&gt;&lt;br/&gt;
Bonne programmation à tous!&lt;br/&gt;
Cordialement,&lt;br/&gt;
Mars073&lt;/p&gt;

]]></description><link>https://melinyel.net/topic/189/jquery-evenement-de-base</link><guid isPermaLink="true">https://melinyel.net/topic/189/jquery-evenement-de-base</guid><dc:creator><![CDATA[mars073]]></dc:creator><pubDate>Sun, 16 Mar 2014 20:23:57 GMT</pubDate></item><item><title><![CDATA[[JQuery] Introduction au JQuery]]></title><description><![CDATA[&lt;p&gt;Salut all,&lt;br/&gt;
Aujourd'hui je vais vous faire une intro au jquery, ce qui n'est en faite qu'une libraire en javascript mais bon la plupart des gens considèrent ça comme un langage appart .-.&lt;br/&gt;&lt;br/&gt;
le plus gros avantage du jquery c'est qu'il permet de faire des animations fluide sur la plupart des navigateur internet et qu'il est simple d'utilisation.&lt;br/&gt;&lt;br/&gt;
Pour "installer" jquery sur son site c'est très simple, dans la balise head de votre site ajoutez la balise suivante avant l'appel d'autres scripts utilisant jquery:&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
&lt;script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"&gt;&lt;/script&gt;
&lt;/pre&gt;
&lt;p&gt;vous pouvez aussi télécharger jquery et le mettre directement sur votre site et mettre votre lien à la place (jquery.com)&lt;br/&gt;
créez un fichier en *.js (ex: main.js) et ajoutez le de la même manière ci-dessus et dans votre jolie fichier on va ajouter ce que j'appel des balises jquery au même titre que le php (&lt;?php ?&gt;) même si ça n'a rien à voire, ce n'est pas obligé il existe différent type d'ouverture mais j'ai pris l’habitude d’utiliser celle-ci et ça évite des bugs de chargement:&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
$(function() {
// corps...
});
&lt;/pre&gt;
&lt;p&gt;dans l'exemple suivant on va faire un carré rouge qui change d'opacité si le curseur se trouve dessus ou non:&lt;br/&gt;
-code html:&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;MmoTrick - Intro au Jquery&lt;/title&gt;
&lt;script type="text/javascript" src="_js/jquery.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="_js/main.js"&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id="carre" style="background: #ff0000; height: 100px; width: 100px; opacity: 0;"&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;/pre&gt;
&lt;p&gt;-code Jquery ("_js/main.js" dans mon exemple):&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
$(function() {
$(document).ready(function() {
$("#carre").fadeto(1, 1000); // 1 = opacité qu'il doit atteindre; 1000 durée de l'animation (1000 = 1sec)
});
$("#carre").mouseenter(function() { // quand le curseur est sur le carré
$("#carre").fadeto(0.2, 500);
});
$("#carre").mouseleave(function() { // quand le curseur quitte le carré
$("#carre").fadeto(1, 3000);
});
});
&lt;/pre&gt;
&lt;p&gt;-même code Jquery mais avec une syntaxe différente mais le même effet:&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
$(function() {
$("#carre").fadeto(1, 1000); // 1 = opacité qu'il doit atteindre; 1000 durée de l'animation (1000 = 1sec)
$("#carre").mouseenter(function() { // quand le curseur est sur le carré
$(this).fadeto(0.2, 500);
}).mouseleave(function() { // quand le curseur quitte le carré
$(this).animate({opacity: 1}, 3000);
});
});
&lt;/pre&gt;
&lt;p&gt;Légende:&lt;br/&gt;

$(document), $(this), $("#carre") sont des selecteurs ils permettent de désigner le ou les éléments auquel vous voulez apporter une modification, un evenemnt ou une fonction quelconque, "#carre" est un selecteur similaire au css vous pouvez donc le remplacer par quelque chose du style: ".carre:first" ce qui selectionne le premier element de la class "carre".&lt;br/&gt;
.ready(), .mouseenter(), .mouseleave() sont des evenements propre à jquery (ce qui permet une interaction plus fluide et contrôlée avec l'utilisateur).&lt;br/&gt;
.fadeTo, .animate() sont des fonctions propre à jquery ce qui permet l'interaction avec les élèments du site (surtout le css);&lt;br/&gt;&lt;br/&gt;
Les différence entre les deux syntaxes:&lt;br/&gt;
suppression de l'evenement .ready (l’exécute le code dans le document est chargé), la balise jquery à +/- le même effet ce qui le rend inutile dans ce cas.&lt;br/&gt;
remplacement de $("#carre") par $(this), "this" indique que la modification ne s'applique que à l’élément concerné par l'evenement ce qui est utile dans le selecteur est une class (ex: ".carre" à la place de "#carre").&lt;br/&gt;
.mouseleave() mit à la suite quand vous avez plusieurs evenement pour le même selecteur vous pouvez les accrocher.&lt;br/&gt;
remplacement de .fadeTo() par .animate(), fadeTo est une version raccourcis pour l'opacité, l'avantage de .animate() et que vous pouvez modifier plusieurs éléèment du css en même temps (ex: '$(this).animate({opacity: 1, width: 250}, 3000);' ).&lt;br/&gt;&lt;br/&gt;
Si vous reprenez mes codes vous verrez que si vous passez plusieurs fois le curseur sur le curseur l'animation va se répéter en boucle pour empêcher cela il suffit d'ajouter la fonction .stop() avant .fadeTo() ou .animate.&lt;br/&gt;&lt;br/&gt;
Pour créer des variables c'est exactement la même chose que en javascript... car c'est du javascript mais certains puristes mettent un "$" devant le nom ce qui ne change absolument rien.&lt;br/&gt;&lt;br/&gt;
Bonne programmation à tous!&lt;br/&gt;
Cordialement,&lt;br/&gt;
Mars073&lt;/p&gt;

]]></description><link>https://melinyel.net/topic/188/jquery-introduction-au-jquery</link><guid isPermaLink="true">https://melinyel.net/topic/188/jquery-introduction-au-jquery</guid><dc:creator><![CDATA[mars073]]></dc:creator><pubDate>Sun, 16 Mar 2014 20:21:17 GMT</pubDate></item></channel></rss>