• 20-04-2014, 06:35:13
    #1
    Merhaba.
    Başlık biraz saçma oldu sanırım ama uygun bi başlık bulamadım. Şöyle bi veritabanı m var.


    Burda bazı selectboxlar ve bunların altına eklenecek optionlar var. Doğrudan selectboxu yazıp içinde optionları döngüye sokamıyorum çünkü option eklenmediyse selectboxu da ekrana basmak istemiyorum. js ile kaldırılabilir aslında ama php ile halletmek istiyorum. Sabahın altısında en az bu kadar döngüyle yapabildim ama selectbox ve option sayıları arttıkça bunca düngü benim de başımı döndürcek gibi. Bu kodu biraz sadeleştirebilir miyiz. Teşekkürler.
  • 20-04-2014, 11:42:57
    #2
    Option olanların her birini ayrı ayrı veritabanına yazmak yerine, json olarak bir kerede veritabanına yazıp okuyabilirsin.
  • 20-04-2014, 16:53:00
    #3
    optionlar farklı id alsın istiyorum, aynı optionları arama formunda ve ilanlarda da kullanmak için.

    Epey uykusuzdum yazarken yeni kalktım devam etçem de sakin kafayla bakınca da pek farkettircek bişey bulamadım. İkinci foreach ilkinin içinde olabilirmiş ama değişken sayısınnı biraz azaltmaktan başka pek bi faydası olmicak sanırım.

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 16:53:00 -->-> Daha önceki mesaj 16:26:55 --

    İlgilenen arkadaş çıkarsa bilgisayarında inceleyebilmesi için text olarak da ekliyorum.
    $oto_select		= array();
    $oto_select_x	= array();
    $sorgu = array(
    	"x"=>"oto", "x2"=>"ozellik",
    	'$or' => array( ["x3" => "selectbox", "ustidler"=>$kasatipi], ["x3" => "option"] )
    );
    $q = $db->ilankat->find( $sorgu );
    if( $q->count(true) > 0 ){
    	foreach( $q as $row ){
    		if		( $row['x3'] == "selectbox" ){ $oto_select[$row['_id']] = array( $row['_id'], stripslashes($row['ad_kat']), stripslashes($row['bilgi_form']), "option"=>array() ); }
    		else if	( $row['x3'] == "option" ){ $oto_select_x[] = array( $row['_id'], stripslashes($row['ad_kat']), $row['ustid'] ); }
    	}
    }
    if( count($oto_select_x) > 0 ){
    	foreach( $oto_select_x as $x){
    		$ustid = $x[2];
    		if( isset( $oto_select[$ustid] ) ){ $oto_select[$ustid]["option"][] = $x; }
    	}
    }
    if( count($oto_select) > 0 ){
    	foreach($oto_select as $selectbox){
    		if( count($selectbox['option']) > 0 ){ ?>
    			<tr>
    				<td><?php echo $selectbox[1]; ?></td><td style="padding:0 10px;">:</td>
    				<td>
    					<select name="<?php echo $selectbox[0]; ?>">
    						<option value="">Lütfen Seçiniz</option><?php 
    						foreach( $selectbox['option'] as $x ){ ?>
    							<option value="<?php echo $x[0]; ?>-<?php echo $x[1]; ?>"><?php echo $x[1]; ?></option><?php 
    						} ?>
    					</select>
    				</td>
    				<td>
    					<div class="form_bilgi1"><?php echo $selectbox[2]; ?></div>
    				</td>
    			</tr><?php 
    		}
    	}
    }