chargement immédiat de la apge

Eléphant du PHP | 258 Messages

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>
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Mammouth du PHP | 1353 Messages

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...
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Eléphant du PHP | 258 Messages

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).
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Mammouth du PHP | 1353 Messages

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 ?
Tell me and I forget. Teach me and I remember. Involve me and I learn.

ViPHP
AB
ViPHP | 5818 Messages

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.