PHP form boş alanları ayırt etme

nomaxx

Öğrenci
Katılım
24 Ağustos 2013
Mesajlar
74
Reaksiyon puanı
0
Puanları
0
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.
 

romansmac

Öğrenci
Katılım
18 Ağustos 2014
Mesajlar
6
Reaksiyon puanı
0
Puanları
0
Tam olarak anlayamadim.. kullandigin kodu yazarsan daha aciklayici olur sanirim
 

ugurturhal

Asistan
Katılım
10 Mayıs 2010
Mesajlar
194
Reaksiyon puanı
1
Puanları
18
Evet, ben de tam olarak anlayamadım. Resimle açıklaman mümkünse daha iyi olabilir...

Edt:

Tam olarak emin olmamakla birlikte şu olabilir;

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

eSa

Dekan
Katılım
5 Kasım 2011
Mesajlar
9,780
Reaksiyon puanı
352
Puanları
263
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

Öğrenci
Katılım
24 Ağustos 2013
Mesajlar
74
Reaksiyon puanı
0
Puanları
0
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:
<?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();
            }
?>
 

romansmac

Öğrenci
Katılım
18 Ağustos 2014
Mesajlar
6
Reaksiyon puanı
0
Puanları
0
Listeyi veritabanindan mi yoksa assoc. array ile mi aldigini bilmedigin icin istedigin seyin basit bir versiyonunu yaziyorum. sen kendine gore uyarlarsin.

Kod:
$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

Öğrenci
Katılım
24 Ağustos 2013
Mesajlar
74
Reaksiyon puanı
0
Puanları
0
Sorun Çözülmüştür Kodlar Aşağıda.
PHP:
<?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.",";
}
 
Üst