Bir proje için formumu biraz daha iyi hale getirmeye çalışıyorum. Değiştirmek istediğim iki konu var. Öncelikle, "firstName ;, soyadı" vb. Hatalarını yazdırmak yerine, o kutudaki kenarlık rengini kırmızıya çevirmek istiyorum. (In_array ('firstName', $ error) kullanarak ve tablodaki bir stili yankılanarak kullanmayı denedim ama işe yaramadı. Herhangi bir fikir var mı?PHP Form: hata bulunduğunda tablo verilerini değiştir
İkinci olarak, değeri korumak istiyorum. . form gönderildiğinde, ancak doğrulamak etmezse açılan listenin 'title' benim kod bunu düşündüm, ama şimdi görünür İşte
benim kodudur:.<?php
$checkedMale = $_POST['gender'] == 'Male' ? "checked='checked'" :
'';
$checkedFemale = $_POST['gender'] != 'Male' ? "checked='checked'" :
'';
$firstName = $_POST["firstName"];
$surname = $_POST["surname"];
$email = $_POST["email"];
$address = $_POST["address"];
$title =$_POST["title"];
if(isset($_POST["gender"])) {
$gender = $_POST["gender"];
}
$formValidates = false;
if(isset($_POST['submit']) && $_POST['submit'] == 'Register') {
$errors = array();
if ($_POST['title'] == 'select') {
$errors[] = 'title';
}
if ($_POST['firstName'] == '') {
$errors[] = 'firstname';
}
if ($_POST['surname'] == '') {
$errors[] = 'surname';
}
if ($_POST['email'] == '') {
$errors[] = 'email';
} else {
if (! filter_var
($_POST['email'],FILTER_VALIDATE_EMAIL)) {
$errors[] = "<p>Please supply a valid e-mail
address</p>";
}
}
if ($_POST['address'] == '') {
$errors[] = 'address';
}
if (count($errors)== 0) {
$formValidates = true;
}
}
if (! $formValidates) {
// Displays errors
if (count($errors) > 0) {
echo "\n<ul>";
foreach ($errors as $error){
echo "\n\t<li>$error</li>";
}
echo "\n<ul>";
}
?>
<table>
<tr>
<th>Title:</th>
<td>
<select name="title" >
<option value="select" <?php echo
(isset($_POST['operator']) && $_POST['operator'] == 'select') ?
'selected="selected"' : ''; ?>>Select</option>
<option value="mr" <?php echo
(isset($_POST['operator']) && $_POST['operator'] == 'mr') ?
'selected="selected"' : ''; ?>>Mr</option>
<option value="mrs" <?php echo
(isset($_POST['operator']) && $_POST['operator'] == 'mrs') ?
'selected="selected"' : ''; ?>>Mrs</option>
<option value="miss" <?php echo
(isset($_POST['operator']) && $_POST['operator'] == 'miss') ?
'selected="selected"' : ''; ?>>Miss</option>
<option value="mr" <?php echo
(isset($_POST['operator']) && $_POST['operator'] == 'dr') ?
'selected="selected"' : ''; ?>>Dr</option>
</select>
</td>
</tr>
<tr>
<th>First name:</th>
<td><input type="text" name="firstName"
placeholder="First Name..." value="<?php
if(isset($_POST['firstName'])){echo $_POST['firstName']; } ?>" />
</td>
</tr>
<tr>
<th>Surname:</th>
<td><input type="text" name="surname"
placeholder="Surname..." value="<?php if(isset($_POST['surname'])){
echo $_POST['surname']; } ?>" /></td>
</tr>
<tr>
<th>Email:</th>
<td><input type="text" name="email" placeholder="E-mail
Address..." value="<?php if(isset($_POST['email'])){
echo $_POST['email']; } ?>"/></td>
</tr>
<tr>
<th>Address:</th>
<td><textarea name="address" placeholder="Postal Address..." value="<?php if(isset($_POST['address'])){ echo $_POST['address']; } ?>"></textarea></td>
</tr>
<tr>
<th>Gender:</th>
<td>
<input type="radio" name="gender" value="Male" <?php echo $checkedMale?> >Male<br>
<input type="radio" name="gender" value="Female" <?php echo $checkedFemale?> >Female<br>
</td>
</tr>
<tr>
<th></th>
<td>
<input type='checkbox' name='option[]' value='Car'
<?php echo in_array('Car', $_POST['option']) ? 'checked' : '' ?>>I have a Car licence<br>
<input type='checkbox' name='option[]' value='Motorcycle'
<?php echo in_array('Motorcycle', $_POST['option']) ? 'checked' : '' ?>>I have a Motorcycle licence<br>
<input type='checkbox' name='option[]' value='Fishing'
<?php echo in_array('Fishing', $_POST['option']) ? 'checked' : '' ?>>I have a Fishing licence<br>
<input type='checkbox' name='option[]' value='TV'
<?php echo in_array('TV', $_POST['option']) ? 'checked' : '' ?>>I have a TV licence<br>
<input type='checkbox' name='option[]' value='Dog'
<?php echo in_array('Dog', $_POST['option']) ? 'checked' : '' ?>>I have a Dog licence<br>
</td>
</tr>
<tr>
<th></th>
<td><input type="submit" name="submit" value="Register" /></td>
</tr>
</table>
</form>
<?php } else {
?>
<table border=1>
<tr>
<td>Title:</td><td><?php echo $title ?></td>
</tr>
<tr>
<td>First Name:</td><td><?php echo $firstName ?></td>
</tr>
<tr>
<td>Surname:</td><td><?php echo $surname ?></td>
</tr>
<tr>
<td>Email:</td><td><?php echo $email ?></td>
</tr>
<tr>
<td>Address:</td><td><?php echo $address ?></td>
</tr>
<tr>
<td>Gender:</td><td><?php echo $gender ?></td>
</tr>
<tr>
<td>Licences:</td><td><?php if(!empty($_POST["option"])) {
foreach($_POST["option"] as $checked) { echo $checked." Licence".
"<br>";}}?> </td>
</tr>
<tr>
<td>Registration completed: </td> <td><?php echo date("l d/m/y");
?> at <?php echo date("h:ia"); ?></td>
</tr>
</table>
<a href='<?php echo $_SERVER['PHP_SELF'] ?>'>BACK</a>
<?php } ?>
Başlığı işe yarıyor! Teşekkür ederim. Kodu başka bir komut dosyasından kopyaladım ve değiştirmeyi unuttum. 'FirstName' biri, tam sonra ne olduğumu değil. Sınırı varsayılan olarak kırmızı olarak, yani sayfa yüklendiğinde olduğu gibi boşsa. Yalnızca formun gönderilmesi ve giriş alanının boş bırakılması durumunda kenarlık stilinin değişmesini istiyorum. Bunu nasıl yapacağımı biliyor musun? – Tatws24
Hatam, kullanıcının formu gerçekten gönderip göndermediğini ve "$ _POST ['firstName']' in aslında boş olduğunu kontrol etmeyi unuttum. Deneyin: ' /> ' –
Bu mükemmel çalışır. Sahip olduğum son konu aynı, ancak farklı alanlar. Metin alanı alanıyla (adres) - sadece giriş kutusunda görüntülenen hata mesajını alıyorum. Bunun için nasıl geçeceğimi biliyor musun? Etrafta oynadım ama doğru cevabı bulamıyorum. Ayrıca aşağı açılan kutu için bunu çözemiyorum. Buna nasıl giderim? – Tatws24