chargement immédiat de la apge

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : chargement immédiat de la apge

par AB » 03 sept. 2008, 16:40

C'est un concept étrange que de vouloir une validation sur un champ avec un autre champ obligatoire, pourquoi pas un bouton submit ?
++ :wink:

Pour le moins étrange et déroutant pour l'utilisateur. Cela ressemble assez à une erreur de conception.

par guilt92 » 03 sept. 2008, 16:20

Car tu veux que le formulaire soit soumis automatiquement dès que tu changes la valeur de la liste ?

A ce moment la tu peux faire un if dans ta fonction qui fait le submit, et tu ne fais le submit que si le champ est rempli...

Code : Tout sélectionner

function verif() { if(document.getElementById("email").value !="") document.forms['choix_rne'].submit(this.form); }

Mais si le mail est pas rempli alors il doit remplir et rechanger la valeur de la liste pour valider.

C'est un concept étrange que de vouloir une validation sur un champ avec un autre champ obligatoire, pourquoi pas un bouton submit ?

par Cypher_PHP » 03 sept. 2008, 16:02

je note bien
mais cela ne change pas grand chose à moins que je me trompe

car si je supprime l'événement OnChange, le textarea (celui du nom_etab) ne réagit pas suite au choix de la premiere liste (rne).

par guilt92 » 02 sept. 2008, 16:08

Code : Tout sélectionner

<script language="JavaScript" type="text/javascript"> function chargement_rne() { document.forms['choix_rne'].submit(this.form); } </script>
Pourquoi avoir cela ?

Je préconiserai plutot une fonction de type verif() qui vérifie les champs du formulaire et leur valeur (grâce à l'attribut value), notamment le champ de mail. Si tout va bien elle retourn true, sinon elle retourne false;

Exemple

Code : Tout sélectionner

function verif() { if(document.getElementById("email").value !="") return true; else return false; }
il te suffit ensuite simplement d'avoir dans ton formulaire

Code : Tout sélectionner

<form name="..." onsubmit="return verif();"> ... <input type="submit" value="Voir le résultat"/> </form>
Tu peux bien sur faire beaucoup plus élaboré, regarde du coté de "Verification de formulaire javascript" sur google...

chargement immédiat de la apge

par Cypher_PHP » 02 sept. 2008, 15:38

Bonjour

je fais appel à vos idées. je suis bloqué face au chargement immédiat d'une page alors que j'ai même pas saisi un mail dans le champ de mail.

probablement à cause du submit lié à la select.
un moyen de retarder ce submit pour que je puisse remplir ce dernier champ?

merci à vous...

voici mon code :
<?php
include('inc_mysql.php');
?>
<html>
<head>
<script language="JavaScript" type="text/javascript">
function chargement_rne()
{
document.forms['choix_rne'].submit(this.form);
}
</script>
</head>
<body>
<table>

<form method="post" action="page2.php" name="choix_rne" id="choix_rne">
<tr>
<td><span style="font-weight: bold;">RNE de l'établissement </span>: <small><span style="font-style: italic;">le rne ne s'affichera pas sur le livret</span></small></td>
<td><SELECT name="rne" id="rne" onchange="chargement_rne();">
<?php
//connexion au serveur de la base
mysql_connect($dbhost, $dblogin, $dbpass)or die("erreur de connexion au serveur $dbhost");
//connexion à la base de données
mysql_select_db($dbbase) or die("erreur de connexion a la base de donnees");
$sql = "SELECT rne FROM $dbtable2 order by rne";
$query = mysql_query($sql)or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while($result=mysql_fetch_array($query)){
echo "<option value=".$result['rne'];
if(isset($_POST['rne']) && $result['rne']==$_POST['rne']) echo " selected='selected'";
echo ">".$result['rne']."</option> ";
}
mysql_free_result($query);
?>
</SELECT> </td>
</tr>
<tr>
<td><span style="font-weight: bold;">Nom de l'établissement </span>:</td>
<td><textarea cols="50" rows="1" name="uaidnc"><?php
$sql2 = "SELECT rne, dept, etprco, uaidnc FROM $dbtable2 WHERE rne = '$rne'";
$query2 = mysql_query($sql2)or die('Erreur SQL !<br />'.$sql2.'<br />'.mysql_error());

if($result2=mysql_fetch_array($query2))
{
echo $result2['etprco']." ".$result2['uaidnc'];
}
mysql_free_result($query2);
?></textarea></td>
</tr>
<tr>
<td><span style="font-weight: bold;">* Courriel </span>:  <small><span style="font-style: italic;"> ... en 1 ligne </span></small></td>
<td><textarea cols="50" rows="1" name="mail_etab"></textarea></td>
</tr>
</table>

<tr>
<td class="center"><input name="validation" value="Voir le résultat" type="button" onclick="verifForm(this.form)"></td>
<td class="center"><input name="delete" value="Réinitialiser" type="reset"></td>
</form>
</body>
</html>