Récupérer valeur textarea

Résolu/Fermé
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - Modifié par Sinistrus le 9/01/2015 à 13:35
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 9 janv. 2015 à 14:58
Bonjour,

J'essais de récupérer la valeur du input par javascript en cliquant sur un lien mais j'y arrives pas :

<input type="text" name="Newsletter" id="Newsletter" value="<?php echo $Newsletter; ?>bonjour@sivop.com" style="width:300px" />
<br />
<br />
<input type="submit" name="Envoyer" class="Btn BtnRouge" value="Désinscription à la lettre d'information"
onclick="javascript: if(confirm('Êtes-vous sûr de vouloir supprimer « <?php echo $Newsletter; ?> » ?')) document.location='delete.php?action=delete&email=<?php echo $Newsletter; ?>';" />

Vous avez une idée ?


4 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
9 janv. 2015 à 14:17
Bonjour,

Tu parles de TEXTAREA dans ton titre... hors je ne vois qu'un INPUT...

Par contre, il est préférable de placer les scripts Javascript dans des fonctions.. plutôt que d'essayer de tout coder directement dans le onclick
remplaces également le SUBMIT par BUTTON .. vu que de toutes façons tu fais la redirection de ta page via le javascript....

ce qui devrait donner :
<input type="text" name="Newsletter" id="Newsletter" value="<?php echo $Newsletter; ?>bonjour@sivop.com" style="width:300px" />
<br />
<br />
<input type="button" name="Envoyer" class="Btn BtnRouge" value="Désinscription à la lettre d'information"
onclick="confirmSuppr('<?php echo $Newsletter; ?>');" />

<script type="text/javascript">
function confirmSuppr(newsletter){
 if(confirm('Êtes-vous sûr de vouloir supprimer « ' + newsletter + ' » ?')) {
  document.location='delete.php?action=delete&email='+newsletter;
 }
}

</script>



Si ça ne fonctionne toujours pas, utilises tes outils de debogage de ton navigateur internet ( moi je prend le plugin Firebug pour firefox) et regarde si dans la console tu n'as pas des erreurs de scripts....



0
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
9 janv. 2015 à 14:21
Merci Jordane,

J'ai changé le script pour avoir une seule page (sans redirection) et tout en php.

<form action="<?php echo $PHP_SELF ?>" method="post" enctype="multipart/form-data" name="FormDelete">
<input type="text" name="f_Newsletter" style="width:300px; <?php if($errf_Newsletter==1){print($StyleErreur);} ?>" value="<?php echo stripslashes($f_Newsletter); ?>">
<br /><br />
<input type="submit" name="Envoyer" class="Btn BtnRouge" value="Désinscription à la lettre d'information">

<?php if(isset($_POST['Envoyer'])){$erreur="";

while(list($var,$val)=each($_POST)){if(!is_array($val)){$$var=strip_tags($val);}
else{while(list($arvar,$arval)=each($val)){$$var[$arvar]=strip_tags($arval);}}}

$f_Newsletter	= trim(preg_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_Newsletter));

if(strlen($f_Newsletter)<2)	{$erreur.="Le champ « adresse électronique » est vide !"; $errf_Newsletter=1; }
							else{if(!preg_match('/^[^@]{1,64}@[^@]{1,255}$/', $f_Newsletter))	
							{$erreur.="La syntaxe de l'adresse électronique est incorrecte !"; $errf_Newsletter=1;}}

if($erreur==""){

$dbz = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
mysql_select_db(MYSQL_BASE,$dbz);
$sql = "DELETE FROM tb_newsletter_adresses WHERE Newsletter='".$f_Newsletter."'";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$valide.="La désinscription de l'adresse électronique <strong>".$f_Newsletter."</strong> a été prise en compte.";}}
?>

<?php if($valide){ ?>
<?php echo "<div class='Message_Info'>".$valide."</div>" ?>
<?php } ?>
<?php if($erreur){ ?>
<?php echo "<div class='Erreur_Info'>".$erreur."</div>" ?>
<?php } ?>
                
</form>


Voici le message d'erreur que je reçois, je sais que je suis sur la bonne voie, mais je suis un peux callé...
Erreur SQL !DELETE FROM tb_newsletter_adresses WHERE Newsletter=bonjour@sivop.com
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@sivop.com' at line 1
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
9 janv. 2015 à 14:34
ça n'a plus de rapport avec ta question initiale....mais bon....

Visiblement la requête générée est la suivante :
DELETE FROM tb_newsletter_adresses WHERE Newsletter=bonjour@sivop.com

C'est étonnant qu'il manque les quotes autour de bonjour@sivop.com ....
Normalement tu devrais avoir :

DELETE FROM tb_newsletter_adresses WHERE Newsletter='bonjour@sivop.com'


Prends donc cette requête .. et testes là en direct dans ta BDD.... et regarde ce qu'il te dit...
Perso j'utilise HeidiSql ( https://codes-sources.commentcamarche.net/faq/10778-heidisql-tester-ses-requetes-sql ) mais tu peux passer par PhpMyadmin si toi tu préfères....
0
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
9 janv. 2015 à 14:41
la requête
DELETE FROM tb_newsletter_adresses WHERE Newsletter='bonjour@sivop.com'
a effectivement supprimée l'enregistrement...

Je ne comprends pas pourquoi il fait ça !
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
Modifié par jordane45 le 9/01/2015 à 14:58
Recréé ta ligne dans ta BDD puis retestes ceci :


if($erreur==""){
//********************************************************//
// déjà...cette partie là de ton code devrait se trouver dans un fichier à part
// que tu aurais juste à inclure en début de ta page...
$dbz = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
mysql_select_db(MYSQL_BASE,$dbz);
//********************************************************//


$sql = "DELETE FROM tb_newsletter_adresses 
            WHERE Newsletter='".$f_Newsletter."'";
//-----------------------------------------------------------------
// Le temps des tests :
//-----------------------------------------------------------------
  echo "<pre> f_Newsletter = ".$f_Newsletter."</pre>";
  echo "<pre> La requête => <br> ".$sql."</pre>";
//-----------------------------------------------------------------
mysql_query($sql) or die('Erreur SQL ! <br>'.$sql.'<br>'.mysql_error());
$valide.="La désinscription de l'adresse électronique <strong>".$f_Newsletter."</strong> a été prise en compte.";
 }
}
?>



Essayes ça et dis nous ce que ça t'affiche !


Au passage.. la suite de ton code... evites de Fermer/ouvrir des Balises PHP pour rien..
<?php if($valide){ ?>
<?php echo "<div class='Message_Info'>".$valide."</div>" ?>
<?php } ?>
<?php if($erreur){ ?>
<?php echo "<div class='Erreur_Info'>".$erreur."</div>" ?>
<?php } ?>

Peut s'écrire plus proprement :
 if($valide){ 
   echo "<div class='Message_Info'>".$valide."</div>"
  } 
 if($erreur){
 echo "<div class='Erreur_Info'>".$erreur."</div>" 
} 

?>

Cordialement,
Jordane
0