Bonjour
je cherche depuis plus de 10 jours quelque chose qui vous paraitra peut-être enfantin.
Grâce à une boucle while, je liste des petits textes ainsi qu'un bouton qui permet grâce à un traitement php (page séparée), d'incrémenter un compteur (nombre de personnes qui sont d'accord avec le conseil donné).
Si le formulaire de traitement marche bien, j'aurais voulu lorsque le bouton a été cliqué que son texte (value) change.
j'ai donc pensé à un onclick. Sauf que la nouvelle valeur apparait quelques mili secondes et disparait. Si j'ajoute un return false, là la nouvelle valeur reste à l'écran, mais bien sûr, mon formulaire n'est plus envoyée et ma base de données n'est plus incrémentée.
j'ai cherché à mettre directement le this.value dans la page (celle ou se trouve la boucle) et mettre ce this.value en session dans le page de traitement php (en pensant qu'il s'agissait d'un problème de réactualisation), le résultat est le même.
Je n'y connais vraiment rien en javascript, j'ai cherché en php, je n'ai trouvé aucune solution.
quelqu'un peut-il m'aider ?
Voici les codes
à l'intérieur de la boucle :
Le code de traitement php
Merci
Modifié par nomieandme (17 Jan 2012 - 14:51)
je cherche depuis plus de 10 jours quelque chose qui vous paraitra peut-être enfantin.
Grâce à une boucle while, je liste des petits textes ainsi qu'un bouton qui permet grâce à un traitement php (page séparée), d'incrémenter un compteur (nombre de personnes qui sont d'accord avec le conseil donné).
Si le formulaire de traitement marche bien, j'aurais voulu lorsque le bouton a été cliqué que son texte (value) change.
j'ai donc pensé à un onclick. Sauf que la nouvelle valeur apparait quelques mili secondes et disparait. Si j'ajoute un return false, là la nouvelle valeur reste à l'écran, mais bien sûr, mon formulaire n'est plus envoyée et ma base de données n'est plus incrémentée.
j'ai cherché à mettre directement le this.value dans la page (celle ou se trouve la boucle) et mettre ce this.value en session dans le page de traitement php (en pensant qu'il s'agissait d'un problème de réactualisation), le résultat est le même.
Je n'y connais vraiment rien en javascript, j'ai cherché en php, je n'ai trouvé aucune solution.
quelqu'un peut-il m'aider ?
Voici les codes
à l'intérieur de la boucle :
<div id="idgvote" class="idg"><span style="font-weight: bold">Pseudo</span> : <span class="verdanarougecapitalize"><?php echo stripslashes($donnees['login']); ?></span> - <span style="font-weight: bold">Catégorie</span> : <a href="/idg/<?php echo stripslashes($donnees['categorie']); ?>.php" style="text-decoration:none; color:#990; font-weight:bold"><?php echo $donnees['categorie'] ; ?></a><br>
<a href="/idg/categorie-<?php echo stripslashes($donnees['categorie']); ?>.php?idvis=<?php echo stripslashes($donnees['idvis']); ?>" style="text-decoration:none; color:#666"><?php echo $donnees['texte'] ; ?></a><br>
<form action="vote.php" method="post" name="<?php echo $donnees['idvis'] ; ?>" id="<?php echo $donnees['idvis'] ; ?>">
<input name="idvis" id="idvis" type="hidden" value=" <?php echo $donnees['idvis'] ; ?>" />
<input name="vote" type="submit" id="vote" style=" background-color:#FFF; border:none; margin-left:-5px; color:#996" onclick="<?php echo $visibility ; ?>" value="Je suis content(e) pour toi"
>
<span id="elem<?php echo $donnees['idvis'] ; ?>" style="color:#996; font-size:12px;">(<?php echo $donnees['plus'] ; ?>)</span>
</form>
</div>
Le code de traitement php

<?php
session_start();
mysql_connect("localhost", "xxxxx", "xxxxxxx"); // Connexion a MySQL
mysql_select_db("idg");
if (isset($_POST['vote']))
{ $sql = "SELECT * FROM passage WHERE ip='".$_SERVER["REMOTE_ADDR"]."' and id_vote='". $_POST['idvis'] ."' ";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$res = mysql_num_rows($req);
if($res!=0)
{
header ( "location: " . $_SERVER ['HTTP_REFERER'] );
$_SESSION ['visibility']="this.value='merci, mais tu as deja donne ton accord';return false ";
}
else {
$retour = mysql_query('SELECT plus FROM idg WHERE idvis=\'' . $_POST['idvis'] . '\'');
while ($donnees = mysql_fetch_array($retour))
{
mysql_query('UPDATE idg SET plus = plus +1 WHERE idvis=\'' . $_POST['idvis'] . '\'');
$sql = "INSERT INTO passage (ip,lieu_x,id_vote) VALUES ('".$_SERVER["REMOTE_ADDR"]."',now(),'$idvis')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
header ( "location: " . $_SERVER ['HTTP_REFERER'] );
$_SESSION ['visibility']="this.value='merci';return false ";
} } }
?>
Merci
Modifié par nomieandme (17 Jan 2012 - 14:51)