Bonjour,

Je souhaiterais inclure un texte dans la case de saisi email : "Votre email ici !"

J'ai trouvé ce tutorial mais je n'arrive pas à l'intégrer dans la case original...

http://www.editeurjavascript.com/scripts/scripts_formulaires_2_15.php

(il me regénère une case juste en dessous.)

<FORM>
<INPUT TYPE="text" NAME="email" SIZE=25 VALUE="Votre email ici !" onFocus="this.value=''">
<INPUT TYPE="submit" VALUE="S'abonner">
</FORM>


Voici mon code origial :

<?php
/*
$Id: information.php,v 1.5 2002/01/11 22:04:06 dgw_ Exp $
osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com
Copyright (c) 2001 osCommerce
Released under the GNU General Public License
*/
?>

<script language="JavaScript1.2" type="text/javascript">
function verify(form)
{
var passed = false;
var blnRetval, intAtSign, intDot, intComma, intSpace, intLastDot, intDomain, intStrLen;
if (form.Email){
intAtSign=form.Email.value.indexOf("@");
intDot=form.Email.value.indexOf(".",intAtSign);
intComma=form.Email.value.indexOf(",");
intSpace=form.Email.value.indexOf(" ");
intLastDot=form.Email.value.lastIndexOf(".");
intDomain=intDot-intAtSign;
intStrLen=form.Email.value.length;
// *** CHECK FOR BLANK EMAIL VALUE
if (form.Email.value == "" )
{
alert("Vous n'avez pas entré d'adresse email.");
form.Email.focus();
passed = false;
}
// **** CHECK FOR THE @ SIGN?
else if (intAtSign == -1)
{

alert("Il manque le \"@\" dans votre adresse email.");
form.Email.focus();
passed = false;

}
// **** Check for commas ****

else if (intComma != -1)
{
alert("Une adresse email ne peut contenir de virgule.");
form.Email.focus();
passed = false;
}

// **** Check for a space ****

else if (intSpace != -1)
{
alert("Une adresse email ne peut contenir d'espace.");
form.Email.focus();
passed = false;
}

// **** Check for char between the @ and dot, chars between dots, and at least 1 char after the last dot ****

else if ((intDot <= 2) || (intDomain <= 1) || (intStrLen-(intLastDot+1) < 2))
{
alert("Please enter a valid Email address.\n" + form.Email.value + " is invalid.");
form.Email.focus();
passed = false;
}
else {
passed = true;
}
}
else {
passed = true;
}
return passed;
}
//-->
</script>


<?php
$info_box_contents = array();
$info_box_contents[] = array('align' => 'left',
'text' => '<form name="newsletter" action="' . tep_href_link(FILENAME_NEWSLETTERS_SUBSCRIBE, '', 'NONSSL') . '" method="post" onSubmit="return verify(this);"><input type="text" name="Email" value="" checked class="input-newsletter-home" />' . '<input type="submit" name="Submit" value="ok" class="bt-ok" />' . '<a href="' . tep_href_link(FILENAME_NEWSLETTERS, '', 'NONSSL') . '"></form>');

new infoBox($info_box_contents);
?>

Et voici mon site :

http://www.achat-bio.fr/catalog/

Cordialement,
Kervano
Modifié par kervano (02 Mar 2008 - 01:56)
Administrateur
Bonjour,

où essaies-tu de copier-coller ce tutorial? Quelque part dans le fichier "constante DIR_WS_BOXES".newsletter.php non? Ton 2ème encadré (code original) ne nous est d'aucune utilité puisque c'est du PHP, seul le code HTML produit est intéressant Smiley cligne (mais c'est justement ce que permet de voir le lien vers ton site --> on a le code source quand même donc OK Smiley cligne - et en passant, ce code généré est pas beau à voir avec cette imbrication de tables là où un formulaire composé de 2 éléments input text et input submit aurait suffi)

Le 3ème commentaire sous le tutorial donne un code avec un défaut en moins, je sais pas si tu l'as lu?
Bonjour,

J'ai essayer de copier le code suivant :

<input type="text" onclick="if (this.value=='Votre mail ici !') this.value=''" value="Votre mail ici !"/>
Dans le fichier newsletter.php :

<?php
/*
  $Id: information.php,v 1.5 2002/01/11 22:04:06 dgw_ Exp $
  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com
 
  Copyright (c) 2001 osCommerce
  Released under the GNU General Public License
*/
?>
[#red][#]<input type="text" onclick="if (this.value=='Votre mail ici !') this.value=''" value="Votre mail ici !"/>[/#]
<script language="JavaScript1.2" type="text/javascript">
        function verify(form)
        {
           var passed = false;
        var blnRetval, intAtSign, intDot, intComma, intSpace, intLastDot, intDomain, intStrLen;
        if (form.Email){
                       intAtSign=form.Email.value.indexOf("@");
                        intDot=form.Email.value.indexOf(".",intAtSign);
                        intComma=form.Email.value.indexOf(",");
                        intSpace=form.Email.value.indexOf(" ");
                        intLastDot=form.Email.value.lastIndexOf(".");
                        intDomain=intDot-intAtSign;
                        intStrLen=form.Email.value.length;
                // *** CHECK FOR BLANK EMAIL VALUE
                   if (form.Email.value == "" )
                   {
                alert("Vous n'avez pas entré d'adresse email.");
                form.Email.focus();
                passed = false;
                }
                // **** CHECK FOR THE  @ SIGN?
                else if (intAtSign == -1)
                {

                alert("Il manque le \"@\" dans votre adresse email.");
                        form.Email.focus();
                passed = false;

                }
                // **** Check for commas ****

                else if (intComma != -1)
                {
                alert("Une adresse email ne peut contenir de virgule.");
                form.Email.focus();
                passed = false;
                }

                // **** Check for a space ****

                else if (intSpace != -1)
                {
                alert("Une adresse email ne peut contenir d'espace.");
                form.Email.focus();
                passed = false;
                }

                // **** Check for char between the @ and dot, chars between dots, and at least 1 char after the last dot ****

                else if ((intDot <= 2) || (intDomain <= 1)  || (intStrLen-(intLastDot+1) < 2))
                {
                alert("Please enter a valid Email address.\n" + form.Email.value + " is invalid.");
                form.Email.focus();
                passed = false;
                }
                else {
                        passed = true;
                }
        }
        else    {
                passed = true;
        }
        return passed;
  }
        //-->
</script>


<?php
  $info_box_contents = array();
  $info_box_contents[] = array('align' => 'left',
                               'text'  =>  '<form name="newsletter" action="' . tep_href_link(FILENAME_NEWSLETTERS_SUBSCRIBE, '', 'NONSSL') . '" method="post" onSubmit="return verify(this);"><input type="text" name="Email" value="" checked  class="input-newsletter-home" />'  . '<input type="submit" name="Submit" value="ok" class="bt-ok" />' . '<a href="' . tep_href_link(FILENAME_NEWSLETTERS, '', 'NONSSL') . '"></form>');

  new infoBox($info_box_contents);
?>


Mais voici ce que cela donne :

http://www.achat-bio.fr/catalog/index.php
Modifié par kervano (01 Mar 2008 - 19:22)