Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/06/2008, 19h24   #1
Membre confirmé
 
Inscription : mars 2003
Messages : 674
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 674
Points : 242
Points : 242
Par défaut Rester sur la page actuelle ou ouvrir une nouvelle page

Bonjour.

J'espère que je suis sur le bon forum !!
Sur une page je demande à l'utilisateur de saisir le nom d'un établissement, un nom et un prénom.
Je teste si le tout est correcte. Si ok je veux ouvrir une page "dossier.php" sinon je veux rester sur la même page "candidats_log.php"

voici mon code de la page "candidats_log.php"
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<br />
<p align="center">
Pour accéder au dossier de candidature merci de compléter les renseignements ci-dessous.</p>
 
<?php
require('connect.php');
if (isset($_POST['nom_etablist']))		$nom_etablist = $_POST['nom_etablist'];
else $nom_etablist= "";
if (isset($_POST['nom']))		$nom = $_POST['nom'];
else $nom= "";
if (isset($_POST['prenom']))		$prenom = $_POST['prenom'];
else $prenom= "";
 
$id_etablist = "";
$nom_etablist_table = "";
$id_candidat = "";
$nom_table = "";
$prenom_table = "";
if (!empty($nom_etablist)){
	$sql = mysql_query("SELECT id_etablist, nom_etablist FROM etablissement WHERE nom_etablist LIKE '%$nom_etablist%'");
	if (mysql_num_rows($sql) > 0){
		$res = mysql_fetch_array($sql);
		$id_etablist = $res['id_etablist'];
		$nom_etablist_table = $res['nom_etablist'];
	}
	if (!empty($id_etablist)){
		$sql = mysql_query("SELECT id_candidat, id_etablist, nom_candidat1, prenom_candidat1 FROM candidats WHERE id_etablist LIKE '%$id_etablist%' AND nom_candidat1 LIKE '%$nom%' AND prenom_candidat1 LIKE '%$prenom%'");
		if (mysql_num_rows($sql) > 0){
			$res = mysql_fetch_array($sql);
			$id_candidat = $res['id_candidat'];
			$nom_table = $res['nom_candidat1'];
			$prenom_table = $res['prenom_candidat1'];
		}
		if (empty($id_candidat)) {
			echo "<p align='center'><font color='red'><b>Nom et/ou prénom non valide(s) !</b></font></p>";
		}
	}
	else { echo "<p align='center'><font color='red'><b>Le nom de l'établissement n'est pas valide !</b></font></p>";}
 
}
?>
 
<form name="log" method="POST" action="index.php?page=dossier">
<table border="0" align="center">
	<tr>
		<td align="right" height="70px">Nom de l'entreprise ou &nbsp;&nbsp;<br />de l'établissement scolaire &nbsp;&nbsp;</td>
		<td> <input type="text" name="nom_etablist" value="<?php echo $nom_etablist_table; ?>" style="font-size:13px; width:350px"></td>
	</tr>
	<tr>
		<td colspan="2" align="center">Indiquez ci-dessous le premier nom et prénom du candidat saisi dans le dossier de candidature</td>
	<tr>
		<td align="right" height="30px"> Nom :&nbsp;&nbsp;</td>
		<td> <input type="text" name="nom" value="<?php echo $nom_table; ?>" style="font-size:13px; width:200px";></td>
	</tr>
	<tr>
		<td align="right" height="30px"> Prénom :&nbsp;&nbsp;</td>
		<td> <input type="text" name="prenom" value="<?php echo $prenom_table; ?>" style="font-size:13px; width:200px";></td>
	</tr>
 
	<tr>
		<td align="center" height="40px" colspan="2"><input type="submit" name="valider" value="Valider" style="font-size:13px";></td>
	</tr>
</table>
</form>
Avec ce formulaire la page dossier.php s'ouvre même si le nom de l'établissement est faux.
début du code de la page dossier.php
Code :
1
2
3
4
5
6
7
8
9
<?php
require ('connect.php');
$choix = "";
if (isset($_REQUEST['nom_etablist'])){
	$choix=$_REQUEST['nom_etablist'];
 
	echo $choix;
}
else { echo "toto";}
Merci d'avance
philippef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 19h52   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 383
Points : 16 383
Le plus simple d'apres moi est de tout traiter depuis une meme page qui affiche conditionnellement telle ou telle partie
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 20h26   #3
Membre confirmé
 
Inscription : mars 2003
Messages : 674
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 674
Points : 242
Points : 242
Je ne souhaite pas rester sur la même page car les personnes doivent saisir tout un dossier de candidature sur un formulaire déjà très long.
philippef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 21h17   #4
Membre confirmé
 
Avatar de juliens9
 
Directeur technique
Inscription : mars 2007
Messages : 192
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : mars 2007
Messages : 192
Points : 220
Points : 220
Ton probleme est pas tres bien expliquer je trouve :

Tu veux en fonction du traitement soit rester sur ta page actuelle soit renvoyer sur une autre page; si j'ai bien compris.

Dans ce cas la integre le traitement de ton formulaire dans la meme page que ton formulaire, tu met un test type isset($_POST['nomform']) pour pas que le traitement se declenche des le debut, et puis ben si ya une erreur tu fais rien et reste sur la meme page.

Sinon tu redirige vers une autre page avec un window.location par exemple.
juliens9 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 21h21   #5
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 383
Points : 16 383
Si tu parles de longueur et terme d'affichage, j'ai bien dit qu'il s'agissait d'afficher les parties voulu, pas tout rassembler sur le meme affichage.

Si tu parles de longueur de code, tu peux a la limite utiliser des include();
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 21h34   #6
Membre confirmé
 
Inscription : mars 2003
Messages : 674
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 674
Points : 242
Points : 242
bon ben merci à vous.
En fait j'ai changé un peu mon code et ça marche
philippef est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h05.


 
 
 
 
Partenaires

Hébergement Web