Aynı sayfa içerisinde birden fazla form oluşturmak oldukça yaygındır ve PHP ile bu formları işlemek oldukça basittir. Her bir formun action
özelliğini boş bırakarak, formun aynı sayfaya gönderilmesini sağlayabilirsiniz. Ardından, her formunun farklı bir işlemi temsil etmesi için if blokları kullanabilirsiniz.
Aşağıda, aynı sayfa içerisinde iki farklı formun nasıl oluşturulacağı ve işleneceği bir örnek bulunmaktadır:
PHP İki Form ve İşlem (index.php)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>İki Form ve İşlem</title>
</head>
<body>
<?php
// Form 1 gönderilmiş mi kontrol et
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["form1"])) {
// Form 1'den gelen verileri alma ve işleme
$ad1 = $_POST["ad1"];
$soyad1 = $_POST["soyad1"];
// Form 1 verilerini ekrana yazdırma
echo "<h2>Form 1 Sonuçları:</h2>";
echo "Ad: " . htmlspecialchars($ad1) . "<br>";
echo "Soyad: " . htmlspecialchars($soyad1);
}
// Form 2 gönderilmiş mi kontrol et
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["form2"])) {
// Form 2'den gelen verileri alma ve işleme
$ad2 = $_POST["ad2"];
$soyad2 = $_POST["soyad2"];
// Form 2 verilerini ekrana yazdırma
echo "<h2>Form 2 Sonuçları:</h2>";
echo "Ad: " . htmlspecialchars($ad2) . "<br>";
echo "Soyad: " . htmlspecialchars($soyad2);
}
?>
<!-- Form 1 -->
<form action="" method="post">
<h2>Form 1</h2>
<label for="ad1">Adınız:</label>
<input type="text" id="ad1" name="ad1" required>
<br>
<label for="soyad1">Soyadınız:</label>
<input type="text" id="soyad1" name="soyad1" required>
<br>
<input type="submit" name="form1" value="Gönder">
</form>
<!-- Form 2 -->
<form action="" method="post">
<h2>Form 2</h2>
<label for="ad2">Adınız:</label>
<input type="text" id="ad2" name="ad2" required>
<br>
<label for="soyad2">Soyadınız:</label>
<input type="text" id="soyad2" name="soyad2" required>
<br>
<input type="submit" name="form2" value="Gönder">
</form>
</body>
</html>
Yukarıdaki örnekte, her iki form da aynı sayfaya gönderiliyor. Formlardan hangisinin gönderildiğini ayırmak için name
attribute'ünü kullanarak bir submit butonu belirtiyoruz (name="form1"
ve name="form2"
). Ardından, PHP kodunda her formun verilerini kontrol edip işleyerek ekrana yazdırıyoruz.