Ce qui suit est l'une de mes pages HTML.
<form id="regForm" method="post" action="enquiry_process.php" novalidate="novalidate">
<fieldset>
<legend>Personal Details</legend>
<label>First Name:</label>
<input type="text" name="owner" id="owner" /><br />
<label>Last Name:</label>
<input type="text" name="owner2" id="owner2" /><br />
</fieldset>
<p>
<input type="Submit" onclick="validateForm()"/>
<input type="Reset" value="Reset" />
</p>
</form>
Ce qui suit est ma deuxième page HTML.
<form id="bookForm" method="post" action="view_enquiry.php">
<?php
$fname = $_POST['owner'];
$lname = $_POST['owner2'];
?>
<input type="hidden" name="owner" value="<?php echo $fname; ?>">
<input type="hidden" name="owner2" value="<?php echo $lname; ?>">
<fieldset>
<legend>User Details</legend>
<p>Your First Name: <span id="confirm_fname"></span></p>
<p>Your Last Name: <span id="confirm_lname"></span></p>
<input type="submit" name="submit" value="Confirm Booking" />
<input type="button" value="Cancel" id="cancelButton" onclick="cancelBooking()" />
</fieldset>
Les fonctions que vous voyez comme validateForm()
et cancelBooking()
sont des fonctions Javascript qui valident mon formulaire ou renvoient l'utilisateur de la 2ème page à la 1ère et je pense qu'elles n'ont rien à voir avec ma question.
Lorsque je clique sur Soumettre sur la première page HTML, il doit transmettre la valeur de owner
et owner2
à la deuxième page, n'est-ce pas?
Je continue à obtenir un index indéfini et après avoir regardé autour de moi, il semble que je doive utiliser isset()
ou empty()
dans mon PHP, mais cela semble ne masquer que mes avis mais ne le résout pas réellement? Lorsque j'ajoute simplement isset()
, cela finit par donner ma troisième page Variable non définie . Les method
sur mes formulaires sont déjà post
.
Y a-t-il un autre problème ici? Je vous remercie.
EDIT: Ce qui suit sont mes Javascripts pertinents.
ValidateForm:
function validateForm(){
"use strict";
gErrorMsg = "";
var nameOK = chkOwnerName();
var nameOK2 = chkOwnerName2();
var isAllOK = (nameOK && nameOK2);
if(isAllOK){
isAllOK = storeBooking();
}
else{
alert(gErrorMsg);
gErrorMsg = "";
}
return isAllOK;
}
Réservation de magasin:
function storeBooking() {
"use strict";
sessionStorage.firstname = document.getElementById("owner").value;
sessionStorage.lastname = document.getElementById("owner2").value;
window.location = "enquiry_process.php";
}
J'ai une autre fonction appelée getbooking
qui s'exécute avec la condition window.onload
function getBooking(){
//if sessionStorage for username is not empty
if((sessionStorage.firstname != undefined)){
//confirmation text
document.getElementById("confirm_fname").textContent = sessionStorage.firstname;
document.getElementById("confirm_lname").textContent = sessionStorage.lastname;
}
chkOwnerName
et chkOwnerName2
sont des fonctions qui valident le formulaire avec des motifs et je ne pense pas qu'elles soient pertinentes.
J'ai également mis à jour ma 2ème page HTML avec du contenu Javascript car je supposais que cela n'était pas pertinent au début.
3 réponses
Vous pouvez déboguer avec le code ci-dessous en l'ajoutant dans votre 2ème page de formulaire.
echo "<pre>"; print_r($_POST); die;
Si vos données de formulaire ne vont pas à votre 2ème formulaire, Array () sera vide.
"if (empty ($ var))" et "if (isset ($ var))" sont des conditions, ils vérifient quelque chose et exécutent du code dans "{}" si le test renvoie vrai. Donc, ils ne «résolvent» pas les problèmes.
Votre script a bien fonctionné pour moi sans vos js. Peut-être le problème.
Essayez simplement votre code étape par étape. Vous trouverez ce qui ne va pas.
Vous pouvez essayer par print_r($_REQUEST[]);
sur la deuxième page du haut du formulaire (enquiry_process.php
), j'espère que le formulaire est dans le même dossier et que le nom de la deuxième page du formulaire est "enquiry_process.php"
.
Puisque vous envoyez des données à l'aide du formulaire de message, vous devriez pouvoir les récupérer d'ici le print_r($_POST);
ou le print_r($_REQUEST);
De nouvelles questions
php
PHP est un langage de script largement utilisé, de haut niveau, dynamique, orienté objet et interprété, principalement conçu pour le développement Web côté serveur. Utilisé pour les questions sur le langage PHP.