İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Sinema Dizi Akıllı Ev Motosiklet Mikromobilite Kripto Para Sağlık Teknolojileri Son dakika Yazarlar
  1. Ana sayfa
  2. SDN Forum
  3. Programlama
  4. Web Programlama (PHP, ASP, HTML, CSS, JavaScript)
Web Programlama (PHP, ASP, HTML, CSS, JavaScript)

PHP form boş alanları ayırt etme

nomaxx18.08.20147 cevap5.410 görüntüleme
#1
Bir form yaptım formu şu şekilde açıklayayım sizlere;

bir checkbox (yanında açıklaması) ve bir input(text) olarak 2 seçenek var.

Yapmak istediğim şey şu; checkbox'ı seçip inputa değer girildiğinde.
sadece seçili inputun değerini okumasını istiyorum.

Bende olan şey şu checkbox kısmında sıkıntı yok neyi işaretlersem onu alıyorum ama;

Seçili olan checkbox'a girdiğim değeri alıyor seçmediğim checkboxlardaki değerleride boş olarak alıyor. Ben bu boş olanları istemiyorum. yarım edin lütfen.
Cevaplar
#2
Tam olarak anlayamadim.. kullandigin kodu yazarsan daha aciklayici olur sanirim
#3
Evet, ben de tam olarak anlayamadım. Resimle açıklaman mümkünse daha iyi olabilir...

Edt:

Tam olarak emin olmamakla birlikte şu olabilir;


if($checkbox1)
  $veri = $_POST["input_1"];
elseif ($checkbox2)
  $veri = $_POST["input_2"];
...
..
.

#4
Sadece girilen alanları göndermeye uğraşmak yerine, diğer tarafta gelen bilgiyi yorumlayarak işlem yapmak daha kolay ve olması gereken yoldur.
nomaxx Konuyu açan
#5
O zaman şöyle açıklayayım.

tablom şu şekilde:
yemek_id | adet | ...

Şimdi buradaki veriler while döngüsü ile geliyor yani inputlarımın name kısımları aynı. Ben burada 1 ve 2. seçenekleri işaretleyip yandaki adet kısmına keşkül için 1 kavun için 2 yazıp gönder butonuna bastığımda keşkül ve kavunu alıyor (burda sorun yok) ama adet kısımlarında 1,2 ve diğer iki adet kısmındaki alanlarıda boş olarak alıyor.

tabloya listelerken ise şöyle oluyor:
yemek_id | adet |
72,73 1,2,,
Buradaki 72 ile 73 keşkül ile kavunun idleri , adetteki yerde ise adetten gelen veriler.Boş verileride aldığı için 2 tane daha virgül koyuyor ben bu boş olan adet kısımlarını almasını istemiyorum.

- - - Mesaj Güncellendi - - -

Bunlarda kodlarım.
<?php 
include "script/vt.php";
if(isset($_POST["yemek_idcek"])){
    $box = $_POST["yemek_idcek"];
    foreach($box as $idler){
        $list = @$list.$idler.",";
        }
        $list = substr($list,0,-1);
        
    $boxa = $_POST["adet"];
    foreach($boxa as $adetler){
        $lista = @$lista.$adetler.",";
        }
        $lista = substr($lista,0,-1);
        $isim = mysql_real_escape_string(trim($_POST["isim"]));
        $adres = mysql_real_escape_string(trim($_POST["adres"]));
        $tel = mysql_real_escape_string(trim($_POST["tel"]));
        $message = mysql_real_escape_string(trim($_POST["mesaj"]));
        $siparisekle = mysql_query("INSERT INTO siparisler (yemek_id, adet, isim, adres, telefon, aciklama, tarih) VALUES ('$list', '$lista', '$isim', '$adres', '$tel', '$message', now())");
    
    }
    if($siparisekle){
        echo "<script>alert('Siparişiniz Başarıyla Gönderilmiştir')</script>";
        header("Refresh: 0;url=rezervation.php");
        exit();
        }else{
            echo "<script>alert('Hata! Sipariş Gönderilemedi.Lütfen Bizimle İletişime Geçin.')</script>";
            header("Refresh: 0;url=rezervation.php");
            exit();
            }
?>
#6
Listeyi veritabanindan mi yoksa assoc. array ile mi aldigini bilmedigin icin istedigin seyin basit bir versiyonunu yaziyorum. sen kendine gore uyarlarsin.

$yemekler = array("kavun", "karpuz","ezo", "merci");    
$tooplam = count($yemekler);
    
echo '<form action="" method="POST">';
    
for($i=1;$i<=$tooplam;$i++) {
        
    echo "<input type=\"checkbox\" name=\"kutu[$i]\" value=\"$i\" />\r
    {$yemekler[$i-1]} <input type=\"textbox\" name=\"yazi[$i]\" size=\"50\" /><hr />\r";
    
    }


echo "<input type=\"Submit\" name=\"submit\" value=\"Submit\" />\r
 </form>";


    
if(isset($_POST['kutu'])){
    $kutu = $_POST['kutu'];
    $total = count($kutu);
    
    if(isset($_POST['yazi']))    {
        $yazi = $_POST['yazi'];
    }
    
    if(isset($_POST['submit']) && is_array($kutu)) {
        foreach ($kutu as $checked) {
            $ttt = $checked-1;
            
            // Buraya veritabina kaydetmek icin gerekli queriyi yazarsin (INSERT INTO siparisler (yemek_adi, adet) VALUES ($yemekler[$ttt], $yazi[$checked]) gibi
           echo "$yemekler[$ttt]: $yazi[$checked]<br>";
        }
    }
    
} else {
    echo "lutfen secim yapiniz";
}
nomaxx Konuyu açan
#8
Sorun Çözülmüştür Kodlar Aşağıda.
<?php 
include "script/vt.php";
if(isset($_POST["yemek_idcek"])){
    $box = $_POST["yemek_idcek"];
    foreach($box as $idler){
        $list = @$list.$idler.",";
        }
        $list = trim($list,',');         
    $boxa = $_POST["adet"];
    foreach($boxa as $adetler){
        if($adetler != '0'){
        $lista = @$lista.$adetler.",";
        }
        }
        @$lista = trim($lista,',');
        $isim = mysql_real_escape_string(trim($_POST["isim"]));
        $adres = mysql_real_escape_string(trim($_POST["adres"]));
        $tel = mysql_real_escape_string(trim($_POST["tel"]));
        $message = mysql_real_escape_string(trim($_POST["mesaj"]));
        if(($isim == "") or ($adres == "") or ($tel == "") or ($message == "")){
            echo "<script>alert('Lütfen Boş Alan Bırakmayınız!')</script>";
            header("Refresh: 0;url= rezervation.php");
            exit();
        }else{
        $siparisekle = mysql_query("INSERT INTO siparisler (yemek_id, adet, isim, adres, telefon, aciklama, tarih) VALUES ('$list', '$lista', '$isim', '$adres', '$tel', '$message', now())");
        if($siparisekle){
        echo "<script>alert('Siparişiniz Başarıyla Gönderilmiştir')</script>";
        header("Refresh: 0;url=rezervation.php");
        exit();
        }else{
            echo "<script>alert('Hata! Sipariş Gönderilemedi.Lütfen Bizimle İletişime Geçin.')</script>";
            header("Refresh: 0;url=rezervation.php");
            exit();
            }
            }
    }
?>


- - - Mesaj Güncellendi - - -

Sorun buradaydı fakat if($adetler != '0') yerine if($adetler != '') olacak


$boxa
= $_POST["adet"];
foreach(
$boxa as $adetler){
if(
$adetler != '0'){
$lista = @$lista.$adetler.",";
}

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.