Şimdi Ara

QueryString hakkında soru..

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
10
Cevap
0
Favori
410
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba Arkadaşlar...

    Ben QueryString'le baş harfe göre sıralama yapıyorum. Yalnız bunu yaptığım sayfada ajax kullandığım için listele yapacağım sayfada iframe tarzı bir şey kullanılıyor. örneğin : sayfa.asp?harf=A bu şekilde listeleme yapiyorum çünkü kodlar bu sayfada. Ama ben bunu başka bir sayfaya çağırmak istiyorum. Örneğin Default.asp?harf=A bu şekilde çağıramıyorum yani iframe de çalıştığı için fonksiyon çalışmıyor. (kodlari o sayfaya alma şansım yok ajaxın çalışması için) bunun için özel bir kod var mi yada bana başka bir yöntem söyleyebilirmisiniz?



  • session ı arastır



    < Bu mesaj bu kişi tarafından değiştirildi pckopatx -- 29 Eylül 2013; 10:48:32 >
  • Tam sorunu anlayabilmek adına birkaç sorum olacak:

    1) ajax çağrıları için; jquery kütüphanesi mi kullanılıyor? yoksa core javascript xmlhttprequest objesi mi kullanılıyor?
    2) kodu kopyalamaktan bahsettiğiniz için, ajax requesti yaptığınız url relative olarak mı belirtilmiş yoksa absolute url midir? (url absolute olursa sayfa değişiminden etkilenmez)
    3) javascript kodları sayfa içine mi yazılmış yoksa harici bir javascript dosyasında mı barındırılıyor?
    4) iframe kullanıldığı için, javascript fonksiyonu yazılırken; iframe içinde de bir html, head ve body etiketlerinin bulunduğuna dikkat edilmiş mi?
  • surcocuk S kullanıcısına yanıt
    <div id="paginate-top"> </div> 
    <div id="bookcontent" > </div>
    <div id="paginate-bottom"> </div>


    <script type="text/javascript">

    var bookonflowers={
    pages: [
    <%
    sayfasayisi=77'sayfa sayisi
    for i=1 to sayfasayisi
    %>
    "sayfa.asp?shf=<%=i%>",
    <%
    next
    %>
    ],
    selectedpage: 0 //set page shown by default (0=1st page)
    }

    var mybookinstance=new ajaxpageclass.createBook(bookonflowers, "bookcontent", ["paginate-top", "paginate-bottom"])
    </script>



    Yukaridaki kod internetten bulduğum bir ajax sayfalama. Bu kodu default.asp de kullaniyorum. sayfa.asp'den verileri çekiyor. sayfa.asp'de querystring çalıştırıyorum. Ama default.asp de çalıştıramiyorum.

    ayrica include edilmis bir .js dosyasi var.

    oda aşağıda.



     
    var ajaxpageclass=new Object()
    ajaxpageclass.loadstatustext="<center><br><br>Yükleniyor<br><br><img src='loading.gif'><br><br></center>" // HTML to show while requested page is being fetched:
    ajaxpageclass.ajaxbustcache=false // Bust cache when fetching pages?
    ajaxpageclass.paginatepersist=true //enable persistence of last viewed pagination link (so reloading page doesn't reset page to 1)?
    ajaxpageclass.pagerange=15 // Limit page links displayed to a specific number (useful if you have many pages in your book)?
    ajaxpageclass.ellipse="..." // Ellipse text (no HTML allowed)

    /////////////// No need to edit beyond here /////////////////////////

    ajaxpageclass.connect=function(pageurl, divId){
    var page_request = false
    var bustcacheparameter=""
    if (window.XMLHttpRequest && !document.all) // if Mozilla, Safari etc (skip IE7, as object is buggy in that browser)
    page_request = new XMLHttpRequest()
    else if (window.ActiveXObject){ // if IE6 or below
    try {
    page_request = new ActiveXObject("Msxml2.XMLHTTP")
    }
    catch (e){
    try{
    page_request = new ActiveXObject("Microsoft.XMLHTTP")
    }
    catch (e){}
    }
    }
    else
    return false
    document.getElementById(divId).innerHTML=this.loadstatustext //Display "fetching page message"
    page_request.onreadystatechange=function(){ajaxpageclass.loadpage(page_request, divId)}
    if (this.ajaxbustcache) //if bust caching of external page
    bustcacheparameter=(pageurl.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
    page_request.open('GET', pageurl+bustcacheparameter, true)
    page_request.send(null)
    }

    ajaxpageclass.loadpage=function(page_request, divId){
    if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)){
    document.getElementById(divId).innerHTML=page_request.responseText
    }
    }

    ajaxpageclass.getCookie=function(Name){
    var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target name/value pair
    if (document.cookie.match(re)) //if cookie found
    return document.cookie.match(re)[0].split("=")[1] //return its value
    return null
    }

    ajaxpageclass.setCookie=function(name, value){
    document.cookie = name+"="+value
    }

    ajaxpageclass.getInitialPage=function(divId, pageinfo){
    var persistedpage=this.getCookie(divId)
    var selectedpage=(this.paginatepersist && this.getCookie(divId)!=null)? parseInt(this.getCookie(divId)) : pageinfo.selectedpage
    return (selectedpage>pageinfo.pages.length-1)? 0 : selectedpage //check that selectedpage isn't out of range
    }

    ajaxpageclass.createBook=function(pageinfo, divId, paginateIds){ //MAIN CONSTRUCTOR FUNCTION
    this.pageinfo=pageinfo //store object containing URLs of pages to fetch, selected page number etc
    this.divId=divId
    this.paginateIds=paginateIds //array of ids corresponding to the pagination DIVs defined for this pageinstance
    //NOTE: this.paginateInfo stores references to various components of each pagination DIV defined for this pageinstance
    //NOTE: Eg: divs[0] = 1st paginate div, pagelinks[0][0] = 1st page link within 1st paginate DIV, prevlink[0] = previous link within paginate DIV etc
    this.paginateInfo={divs:[], pagelinks:[[]], prevlink:[], nextlink:[], previouspage:null, previousrange:[null,null], leftellipse:[], rightellipse:[]}
    this.dopagerange=false
    this.pagerangestyle=''
    this.ellipse='<span style="display:none">'+ajaxpageclass.ellipse+'</span>' //construct HTML for ellipse
    var initialpage=ajaxpageclass.getInitialPage(divId, pageinfo)
    this.buildpagination(initialpage)
    this.selectpage(initialpage)
    }

    ajaxpageclass.createBook.prototype={

    buildpagination:function(selectedpage){ //build pagination links based on length of this.pageinfo.pages[]
    this.dopagerange=(this.pageinfo.pages.length>ajaxpageclass.pagerange) //Bool: enable limitpagerange if pagerange value is less than total pages available
    this.pagerangestyle=this.dopagerange? 'style="display:none"' : '' //if limitpagerange enabled, hide pagination links when building them
    this.paginateInfo.previousrange=null //Set previousrange[start, finish] to null to start
    if (this.pageinfo.pages.length<=1){ //no 0 or just 1 page
    document.getElementById(this.paginateIds[0]).innerHTML=(this.pageinfo.pages.length==1)? "Page 1 of 1" : ""
    return
    }
    else{ //construct paginate interface
    var paginateHTML='<div class="pagination"><ul>\n'
    paginateHTML+='<li><a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=81948835&url=#previous" rel="'+(selectedpage-1)+'" data-href="#previous" rel="'+(selectedpage-1)+'">«</a></li>\n' //previous link HTML
    for (var i=0; i<this.pageinfo.pages.length; i++){
    var ellipses={left: (i==0? this.ellipse : ''), right: (i==this.pageinfo.pages.length-1? this.ellipse : '')} //if this is 1st or last page link, add ellipse next to them, hidden by default
    paginateHTML+='<li>'+ellipses.right+'<a href="#page'+(i+1)+'" rel="'+i+'" '+this.pagerangestyle+'>'+(i+1)+'</a>'+ellipses.left+'</li>\n'
    }
    paginateHTML+='<li><a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=81948835&url=#next" rel="'+(selectedpage+1)+'" data-href="#next" rel="'+(selectedpage+1)+'">sonraki »</a></li>\n' //next link HTML
    paginateHTML+='</ul></div>'
    }// end construction
    this.paginateInfo.previouspage=selectedpage //remember last viewed page
    for (var i=0; i<this.paginateIds.length; i++){ //loop through # of pagination DIVs specified
    var paginatediv=document.getElementById(this.paginateIds[i]) //reference pagination DIV
    this.paginateInfo.divs[i]=paginatediv //store ref to this paginate DIV
    paginatediv.innerHTML=paginateHTML
    var paginatelinks=paginatediv.getElementsByTagName("a")
    var ellipsespans=paginatediv.getElementsByTagName("span")
    this.paginateInfo.prevlink[i]=paginatelinks[0]
    if (paginatelinks.length>0)
    this.paginateInfo.nextlink[i]=paginatelinks[paginatelinks.length-1]
    this.paginateInfo.leftellipse[i]=ellipsespans[0]
    this.paginateInfo.rightellipse[i]=ellipsespans[1]
    this.paginateInfo.pagelinks[i]=[] //array to store the page links of pagination DIV
    for (var p=1; p<paginatelinks.length-1; p++){
    this.paginateInfo.pagelinks[i][p-1]=paginatelinks[p]
    }
    var pageinstance=this
    paginatediv.onclick=function(e){
    var targetobj=window.event? window.event.srcElement : e.target
    if (targetobj.tagName=="A" && targetobj.getAttribute("rel")!=""){
    if (!/disabled/i.test(targetobj.className)){ //if this pagination link isn't disabled (CSS classname "disabled")
    pageinstance.selectpage(parseInt(targetobj.getAttribute("rel")))
    }
    }
    return false
    }
    }
    },

    selectpage:function(selectedpage){
    //replace URL's root domain with dynamic root domain (with or without "www"), for ajax security sake:
    if (this.pageinfo.pages.length>0){
    var ajaxfriendlyurl=this.pageinfo.pages[selectedpage].replace(/^http:\/\/[^\/]+\//i, "http://"+window.location.hostname+"/")
    ajaxpageclass.connect(ajaxfriendlyurl, this.divId) //fetch requested page and display it inside DIV
    }
    if (this.pageinfo.pages.length<=1) //if this book only contains only 1 page (or 0)
    return //stop here
    var paginateInfo=this.paginateInfo
    for (var i=0; i<paginateInfo.divs.length; i++){ //loop through # of pagination DIVs specified
    //var paginatediv=document.getElementById(this.paginateIds[i])
    paginateInfo.prevlink[i].className=(selectedpage==0)? "prevnext disabled" : "prevnext" //if current page is 1st page, disable "prev" button
    paginateInfo.prevlink[i].setAttribute("rel", selectedpage-1) //update rel attr of "prev" button with page # to go to when clicked on
    paginateInfo.nextlink[i].className=(selectedpage==this.pageinfo.pages.length-1)? "prevnext disabled" : "prevnext"
    paginateInfo.nextlink[i].setAttribute("rel", selectedpage+1)
    paginateInfo.pagelinks[i][paginateInfo.previouspage].className="" //deselect last clicked on pagination link (previous)
    paginateInfo.pagelinks[i][selectedpage].className="currentpage" //select current pagination link
    }
    paginateInfo.previouspage=selectedpage //Update last viewed page info
    ajaxpageclass.setCookie(this.divId, selectedpage)
    this.limitpagerange(selectedpage) //limit range of page links displayed (if applicable)
    },

    limitpagerange:function(selectedpage){
    //reminder: selectedpage count starts at 0 (0=1st page)
    var paginateInfo=this.paginateInfo
    if (this.dopagerange){
    var visiblelinks=ajaxpageclass.pagerange-1 //# of visible page links other than currently selected link
    var visibleleftlinks=Math.floor(visiblelinks/2) //calculate # of visible links to the left of the selected page
    var visiblerightlinks=visibleleftlinks+(visiblelinks%2==1? 1 : 0) //calculate # of visible links to the right of the selected page
    if (selectedpage<visibleleftlinks){ //if not enough room to the left to accomodate all visible left links
    var overage=visibleleftlinks-selectedpage
    visibleleftlinks-=overage //remove overage links from visible left links
    visiblerightlinks+=overage //add overage links to the visible right links
    }
    else if ((this.pageinfo.pages.length-selectedpage-1)<visiblerightlinks){ //else if not enough room to the left to accomodate all visible right links
    var overage=visiblerightlinks-(this.pageinfo.pages.length-selectedpage-1)
    visiblerightlinks-=overage //remove overage links from visible right links
    visibleleftlinks+=overage //add overage links to the visible left links
    }
    var currentrange=[selectedpage-visibleleftlinks, selectedpage+visiblerightlinks] //calculate indices of visible pages to show: [startindex, endindex]
    var previousrange=paginateInfo.previousrange //retrieve previous page range
    for (var i=0; i<paginateInfo.divs.length; i++){ //loop through paginate divs
    if (previousrange){ //if previous range is available (not null)
    for (var p=previousrange[0]; p<=previousrange[1]; p++){ //hide all page links
    paginateInfo.pagelinks[i][p].style.display="none"
    }
    }
    for (var p=currentrange[0]; p<=currentrange[1]; p++){ //reveal all active page links
    paginateInfo.pagelinks[i][p].style.display="inline"
    }
    paginateInfo.pagelinks[i][0].style.display="inline" //always show 1st page link
    paginateInfo.pagelinks[i][this.pageinfo.pages.length-1].style.display="inline" //always show last page link
    paginateInfo.leftellipse[i].style.display=(currentrange[0]>1)? "inline" : "none" //if starting page is page3 or higher, show ellipse to page1
    paginateInfo.rightellipse[i].style.display=(currentrange[1]<this.pageinfo.pages.length-2)? "inline" : "none" //if end page is 2 pages before last page or less, show ellipse to last page
    }
    }
    paginateInfo.previousrange=currentrange
    },

    refresh:function(pageinfo){
    this.pageinfo=pageinfo
    var initialpage=ajaxpageclass.getInitialPage(this.divId, pageinfo)
    this.buildpagination(initialpage)
    this.selectpage(initialpage)
    }
    }





    hatta size sayfa.asp'yi veriyim.


     

    <%
    Session.LCID=1055


    shf=Request.QueryString("shf")

    if shf=0 then
    shf=1
    else
    shf = CINT(Request.QueryString("shf"))
    end if

    harfD=Request.querystring("harf")

    Set Bag = Server.CreateObject("Adodb.Recordset")
    listele="SELECT * FROM tablo where left(ADI,1) like '" & harfD &"%' and KOD = 'DENEME' order by ADI asc "
    Bag.open listele, sayfa, 1, 3

    Bag.pagesize=20
    Bag.absolutepage = shf
    for i=1 to Bag.pagesize
    if Bag.EOF then exit for
    %>

    ............

    <%
    Bag.movenext
    next
    %>





  • Sorularımın cevabını aldım javascript dosyasında güncelleme yapmak gerekiyor. Çünkü, javascript fonksiyonu farklı bir urlye request için değil; bulunduğu sayfaya request için yazılmış. getInitialPage fonksiyonu ile bulunduğu sayfa içinde divId parametresindeki nesneyi bulmaya çalışıyor. Yani createBook fonksiyonu ve divId parametresiyle belirtilen bookcontent div i default.asp içerisinde fakat sayfalamayı yapacak olan kod getInitialPage ile sayfa.asp üzerinde işlem yapmaya çalışıyor. Umarım anlatabilmişimdir.
  • contradiction C kullanıcısına yanıt
    Keşke birazda nasil yapacağımla ilgili bilgi verseydin çok daha mutlu olurdum. :) Kendimi bir an başladığım noktada hissettim :)
  • En basitinden şu şekilde ilerleyebilirsin, createBook fonksiyonuna bir parametre daha ekleyip, bu parametreye vereceğin değer o anki sayfanın urlsi olsun (querystring ile birlikte)

    öncelikle;
    var mybookinstance=new ajaxpageclass.createBook(bookonflowers, "bookcontent", ["paginate-top", "paginate-bottom"]);
    yerine
    var mybookinstance=new ajaxpageclass.createBook(bookonflowers, "bookcontent", ["paginate-top", "paginate-bottom"], "default.asp?harf=A");
    şeklinde bir değişiklik yapıyorum.

    javascript dosyasında da son eklenen parametre için mantık şu olacak: Eğer parametre boşsa (veya undefined) getInitialPage olduğu gibi çalışacak. Eğer boş değilse parametredeki url üzerinden pageinfo değişkeni değerini alacak. Yani;

    ajaxpageclass.createBook=function(pageinfo, divId, paginateIds) fonksiyon tanımlaması yerine;
    ajaxpageclass.createBook=function(pageinfo, divId, paginateIds, x) şeklinde, default.asp de belirtilen yeni parametre değerini x ile yakalıyacak biçimde güncelliyorum. Aynı değeri getInitialPage için de ekliyorum.

    ajaxpageclass.getInitialPage=function(divId, pageinfo, x)

    Son olarak da x parametresi için undefined veya "" değilse document.getElementById(divId) satırlarını x parametresindeki sayfa üzerinden aratacak şekilde if yazarak güncelliyorum. Bunu yaparken işte dikkat etmeniz gerekiyor. Çünkü atladığınız bir document.getElementById(divId) satırında hata alırsınız. O nedenle dosya içinde aratarak güncelleme yapmanızı tavsiye ederim.

    Not: eklemeyi unuttum, default.asp sayfasında x parametresine değer verirken anlatım amaçlı hardcoded yazdım o kısmı düzenlemek gerekir



    < Bu mesaj bu kişi tarafından değiştirildi contradiction -- 30 Eylül 2013; 2:10:07 >




  • Yapay Zeka’dan İlgili Konular
    Yedekleme hakkında soru?
    2 ay önce açıldı
    Daha Fazla Göster
  • contradiction C kullanıcısına yanıt
    Kusura bakma seni uğraştırdım. Sanırım beni aşacak bir durum bir türlü beceremedim. Olaya ajax girdiği zaman benim nutkum tutuluyor. Söylediklerini yaptım ama çalıştıramadım.
  • önemli değil, fakat kişisel görüşüm o javascript fonksiyonu senin ihtiyacını karşılamaz çünkü esnek yazılmamış, güncellemek istediğinde birçok yere dokunmak gerekiyor. yani sen illaki bulunduğun sayfaya göre ajax talebinde bulunmak zorunda değilsin, fakat kodu yazan kişi bu durumu yoksaymış. kendi ihtiyacına göre bir javascript fonksiyonu oluşturmak daha çok işini görür. bir de jquery kullanmanı tavsiye ederim çünkü, write less do more
  • default.asp sayfasına gelen sorguyu iframe bölümene gönderirsen çözülür sanıyorum.

    Yani ;


    gönderilen url

    default.asp?harf=A şeklinde

    default.asp sayfasında yapılması gereken

    <%harf=request("harf")%>

    <iframe src="sayfa.asp?harf=<%=harf%>"></iframe>


    buda bir yöntem
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.