• 23-04-2017, 15:19:31
    #1
    AJAX desteğiyle JQuery DataTables eklentisini kullanıyorum. JSON çıktı veren dosyada modifiye etmek istediğim çıktılar var. Fakat diziler bana çok karmaşık geliyor. İlgili kısmı aşağıdaki satırlarda görebilirsiniz,

    ...
    
    $columns = array(
      array( 'db' => 'pic', 'dt' => 0 ),
      array( 'db' => 'pic2',  'dt' => 1 ),
      array( 'db' => 'pictext',   'dt' => 2 ),
      array( 'db' => 'piclink',     'dt' => 3 ),
      array( 'db' => 'picid',     'dt' => 4 )
    );
    
    require( 'ssp.class.php' );
    
    echo json_encode(
      SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns )
    );
    Aşağıdakine benzer şekilde diziden dönen her bir sonucu nasıl düzenleyip çıktılarım?

    $pic = 'something';
    
    $pic = '<img src="'.$pic.'" alt="..." />';
    Teşekkürler.
  • 24-04-2017, 01:59:24
    #2
    bunun iki yöntemi var,
    1-) Client yani tarayıcı tarafında manipulasyon, nispeten ikinciye göre daha kolaydır ama daha az performans verir.

    2-) Anlaması bir tık daha zor olabilir ama daha yüksek performans verir.


    Performansı göz önüne alarak ikinciyi anlatıyorum.

    // birinci ve ikinci kolon id ve isim soyisim olsun.
    //3 numaralı kolonda da resim olsun. 
    //gelen resim değerini (resmin yolunu gösterdiğini varsayıyorum) $d değişkenine atıyoruz,
    // daha sonra bu değişkeni alıp formatter fonksiyonundan geçiriyoruz, istediğimiz formata çevirip return ettiriyoruz. 
    //artık client tarafına bizim istediğimiz şekilde iletilecektir. 
    // bunun ufak bir dezavantajı var, resim değil de bir metni manipüle etseydik, manipüle edilmiş halini aramada kullanamıyor olacaktır. Misal: veritabanında id geliyor, biz bu id leri şehirlerle eşleştirip mesela 34 geliyorsa İstanbul olarak dönüyoruz, İstanbul diye arama yaptığımızda datatables süzmez, 34 diye aramak gerekir. Bunun önüne geçmek için yine client tarafında başka bir işlem var kolonlara arama yapılmasını istediğiniz verinin karşılığını belirtmeniz lazım sanırım data-search diye bir attribute ile yapılıyordu. Bu konuda biraz çalışmanız gerekebilir. 
    
        $columns = array(
    	array( 'db' => 'id', 'dt' => 0 ),
    	array( 'db' => 'isimsoyisim',     'dt' => 1 ),
    	array(
    		'db'        => 'resim',
    		'dt'        => 2,
    		'formatter' => function( $d, $row ) {
    			return '<img src=".'$d'.">';
    		}
    	)
    
    );
    Test etmedim çalışmazsa özel mesaj atın.
    Bol şans..
  • 24-04-2017, 21:24:47
    #3
    mpoy8 adlı üyeden alıntı: mesajı görüntüle
    bunun iki yöntemi var,
    1-) Client yani tarayıcı tarafında manipulasyon, nispeten ikinciye göre daha kolaydır ama daha az performans verir.

    2-) Anlaması bir tık daha zor olabilir ama daha yüksek performans verir.


    Performansı göz önüne alarak ikinciyi anlatıyorum.

    // birinci ve ikinci kolon id ve isim soyisim olsun.
    //3 numaralı kolonda da resim olsun. 
    //gelen resim değerini (resmin yolunu gösterdiğini varsayıyorum) $d değişkenine atıyoruz,
    // daha sonra bu değişkeni alıp formatter fonksiyonundan geçiriyoruz, istediğimiz formata çevirip return ettiriyoruz. 
    //artık client tarafına bizim istediğimiz şekilde iletilecektir. 
    // bunun ufak bir dezavantajı var, resim değil de bir metni manipüle etseydik, manipüle edilmiş halini aramada kullanamıyor olacaktır. Misal: veritabanında id geliyor, biz bu id leri şehirlerle eşleştirip mesela 34 geliyorsa İstanbul olarak dönüyoruz, İstanbul diye arama yaptığımızda datatables süzmez, 34 diye aramak gerekir. Bunun önüne geçmek için yine client tarafında başka bir işlem var kolonlara arama yapılmasını istediğiniz verinin karşılığını belirtmeniz lazım sanırım data-search diye bir attribute ile yapılıyordu. Bu konuda biraz çalışmanız gerekebilir. 
    
        $columns = array(
    	array( 'db' => 'id', 'dt' => 0 ),
    	array( 'db' => 'isimsoyisim',     'dt' => 1 ),
    	array(
    		'db'        => 'resim',
    		'dt'        => 2,
    		'formatter' => function( $d, $row ) {
    			return '<img src=".'$d'.">';
    		}
    	)
    
    );
    Test etmedim çalışmazsa özel mesaj atın.
    Bol şans..
    Harikasınız. Size ne kadar teşekkür etsem az! Bazı syntax hataları vardı, onları düzelttim ve çalışıyor.