Bir formum var ve bunun için il ve ilçelerin, kategori ve alt kategori şeklinde gösterildikleri bir menu elementi var. Bunlar veritabanından doğru çekiliyor fakat 800 den fazla veri çektiği için sayfa yavaş açılıyor, kategoriler yüklenene kadar beklemek zorunda kalıyorum. Bu durumun üstesinden gelmek için önerebileceğiniz bir şey var mı?
Not: php bilgim var mantığı söylemeniz yeterli.
Formlarda Çok Büyük Veri İçeren Ögeleri Hafifletmek?
17
●1.240
- 30-03-2009, 19:49:04Ajax ile istediğini gerçekleştirebilirsin,
JQuery kütüphanesini incelemeni öneririm... - 30-03-2009, 20:53:59Eposta Aktivasyonu GerekmekteEn verimlisi ajax ile. PHPLD nin kullandığı select box. İncelersen belki uygulayabilirsin.uysal_rockci adlı üyeden alıntı: mesajı görüntüle
AJAX Category Selection | Frozenminds Modules for phpLD - 31-03-2009, 02:54:48@uysal_rockci; ajax sonradan benim de aklıma geldi, öyle yapmaya başladım.
@LaCReMeL; il ilçe olan yer kategori kolonu gibi, daha sonra eklenenler olacak ama ajax ile kafama yatmazsa kategori eklendikçe cache yapan bir kod yazabilirim.
@taylanaktepe; verdiğin linke baktım fakat bir modül olduğundan scripti kurup incelemeye üşendim, sıfırdan yazmak daha kolayıma geldi.
Hepinize teşekkürler.
Bir sorum daha olacak.
Bir div'in içinde kategori listesi açılacak. Form değiştiğinde (onChange) yanında alt kategori listesini gör linki olacak, kategori id'si de o linkte olacak, isterse o listeden bir kategoriye ekleyecek, isterse alt kategorilerden birine. Sonsuz kategorileme kullanıyorum fakat bu şekilde sorun olmaması gerek.
Sorum şudur; form değiştiğinde seçilen id'yi nasıl yanındaki linke aktarabilirim? - 31-03-2009, 09:19:15Üyeliği durdurulduonun yerine direk this.value e de kullanılabiliyorsaho adlı üyeden alıntı: mesajı görüntüle
- 31-03-2009, 21:54:05js ile linke direk etki edemem diye biliyorum, edebiliyorsam bilen biri lütfen söylesin. Direkt etki edemediğim için şöyle bir kod kullandım fakat bir soun var;
<head> <script type="text/javascript" src="ajax.js"></script> <script language="JavaScript"> function degistir(){ metinkutusu.value=menu.options[menu.selectedIndex].value; } </script> </head> <? $id=$_GET['id']; ?> <body> <div id="content1" style="border: 1px solid #cccccc;width:640px;height:240px;"> <? if($id==1) { ?> <select id="menu" onchange="javascript:degistir()"> <option id="secenekadi" value="3">altkategori1</option> <option id="secenekadi" value="4">altkategori2</option> </select> <input type="hidden" id="metinkutusu" name="mt"><br> <? } ?> <? if($id==2) { ?> <select id="menu" onchange="javascript:degistir()"> <option id="secenekadi" value="5">altkategori3</option> <option id="secenekadi" value="6">altkategori4</option> </select> <input type="hidden" id="metinkutusu" name="mt"><br> <? } ?> <? if(!isset($id)) { ?> <select id="menu" onchange="javascript:degistir()"> <option id="secenekadi" value="1">kategori1</option> <option id="secenekadi" value="2">kategori2</option> </select> <input type="hidden" id="metinkutusu" name="mt"><br> <? } ?> <? echo "Secilen id:".$_GET['id']; ?><br> <input type="submit" value="Gonder" onClick="javascript:ajaxpage('index.php?id='+metinkutusu.value, 'content1');"> </div> </body>İlk kategoriyi seçtiğimde ve göndere bastığımda id yi alıyor ve gerekli yeri gösteriyor fakat bir kere seçtikten sonra bir daha kategori seçimi yapıp göndere basıyorum id değişmiyor. Gözden kaçırdığım bir şeyler var ama ben bir türlü bulamadım.
Lazım olur diye ajax.js'yi de ekliyorum.
<!-- var loadedobjects="" var rootdomain="http://"+window.location.hostname function ajaxpage(url, containerid){ var page_request = false if (window.XMLHttpRequest) page_request = new XMLHttpRequest() else if (window.ActiveXObject){ try { page_request = new ActiveXObject("Msxml2.XMLHTTP") } catch (e){ try{ page_request = new ActiveXObject("Microsoft.XMLHTTP") } catch (e){} } } else return false page_request.onreadystatechange=function(){ loadpage(page_request, containerid) } page_request.open('GET', url, true) page_request.send(null) } function loadpage(page_request, containerid){ if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)) document.getElementById(containerid).innerHTML=page_request.responseText } function loadobjs(){ if (!document.getElementById) return for (i=0; i<arguments.length; i++){ var file=arguments[i] var fileref="" if (loadedobjects.indexOf(file)==-1){ if (file.indexOf(".js")!=-1){ fileref=document.createElement('script') fileref.setAttribute("type","text/javascript"); fileref.setAttribute("src", file); } else if (file.indexOf(".css")!=-1){ fileref=document.createElement("link") fileref.setAttribute("rel", "stylesheet"); fileref.setAttribute("type", "text/css"); fileref.setAttribute("href", file); } } if (fileref!=""){ document.getElementsByTagName("head").item(0).appendChild(fileref) loadedobjects+=file+" " } } } function MM_swapImgRestore() { var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; } function MM_preloadImages() { var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function MM_findObj(n, d) { var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; } function MM_swapImage() { var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} } //--> - 31-03-2009, 22:42:57Üyeliği durduruldudirek linke etki edemem ne demek?forumxtr adlı üyeden alıntı: mesajı görüntüle