Php kullanarak yeni bir pencere açılması ve bu verilerin görüntülenmesi

3 Cevap php

I am having a problem in my php. What I'm trying to do here is, that I have a .html which directs to an external .js and this js file open up a .php The php extracts data from mysql tables and xml and displays the data on the webpage, (in .html form as table rows). Now when a user clicks on any row, I want that php should open up a new window and I want to display some more data from the same mysql and xml on it (the new window)

for($k=0;$k<=$x->length-1;$k++)
{
    for($l=0;$l<=$j-1;$l++)
    {
        if($y->item($k)->nodeValue==$JobNoArr[$l])
        {
            $m++;
            if ($m%2==0)
                {$a="#A5ADEA";}
            else 
                {$a="#D1D1D3";}

            //form_html1+="<tr onclick='show(" + x + ")' bgcolor="+ y +">";
            echo "<tr bgcolor=". $a .">";
            echo "<td>" . $m . "</td>";
            echo "<td>" . ($y->item($k)->nodeValue) . "</td>";
            echo "<td>" . ($TitleArr[$l]) . "</td>";
            echo "<td onclick=show(".$u->item($k)->nodeValue.")><i><font size=2>Click for Abstract</font></i></td>";
            echo "<td>" . $uu . "</td>";
            echo "</tr>";
        }
    }
}

Ben kullanırsanız echo "<td onclick=show() " o .js dosyasındaki gösterisi işlevini açar ama kullanırsanız echo "<td onclick=".show()."... " bu php kendisi ama onclick işlevselliği olmadan işlevini açar.

Ben burada açıkça benim sorunu açıklamak mümkün olmuştur olmadığını biliyorum, ama sen bana bu konuda yardımcı olabilir eğer, lütfen bunu yapın yok.

3 Cevap

Aslında "PHP bunu", JavaScript ile bunu yapmak için gidiyoruz istemiyorum. PHP bir sunucu tarafı teknolojisi, ve ne yapmak istediğiniz istemci tarafında (tarayıcı) üzerinde gerçekleşmesi gerekiyor. Bu konuda gidip birkaç farklı yolu vardır; Ben aşağıda açıklayacağım yöntem çok az JavaScript kullanır.

First of all, size aşağıdaki gibi onClick yeniden yazmak gerekiyor:

echo "<td onClick=\"return show('".$u->item($k)->nodeValue."');\"><i><font size=2>Click for Abstract</font></i></td>";

Biz aslında yeni bir pencere açılır window.open işlevi kullanmak için gidiyoruz - bu size göstermek istediğiniz verileri, verilen belirtilen satır kimliği veya diğer bazı görüntüleyebilir, yeni bir PHP komut dosyası oluşturmak gerektirecektir tanımlayıcı. Bu durumda, show function bu gibi bir şey olacaktır:

I've updated the example below to be output from within PHP

echo "
 <script type=\"text/javascript\">
 <![CDATA[
   function show(rowid, arrno) {
     window.open(
       'showAbstract.php?rowid='+rowid+'&rowid2='+arrno,  // the url to the php script
       'somenameforthewindow',                            // some name for the window
       'status=0,width=100,height=100'                    // display options for the window
     );
     return false;
   }
 ]]>
 </script>";

PHP sayfa, $_GET['rowid'] parametresini kapmak uygun veri arama ve biçimi / baskı o görünmesini istediğiniz şekilde olmalıdır.

Aslında JSON tüm veri gömmek ve ek pencereler olmadan benzer bir etkiye sahip DHTML ve CSS Katmanlar kullanabilirsiniz. Eğer isterseniz, ben bu bir örnek ekleyebilirsiniz.

muhtemelen gizli bir yüzer diyalog oluşturmak için YUI kullanın ve "soyut" için verileri içerir olabilir. Sayfadaki tüm öğelerin tüm özetleri gizleme varsayılan. Js gösterisi işlevi sadece ayarlayabilirsiniz kullanıcı öğe tıkladığında YUI elemanı görünür olduğunu. Hatta yeni bir tarayıcı penceresi açmak gerekmez.

Gibi içeriği görüntülemek için bir javascript kalıcı bir pencere kullanmak isterdim, yukarıda söyledi. Sen (zaten çoğu modal pencereler ile) aynı MySQL ve XML kullanmak için izin, kalıcı bir pencerede PHP kodu kullanabilirsiniz, ancak bir sunucu tarafı teknoloji olarak PHP sayfayı yenileyerek veya tamamen yeni bir sayfa açmadan yeni bir pencere açamıyorsunuz .

JQuery (reccommend olan) kullanıyorsanız, ben öneririm Facebox kolayca kullanabilir ve hatta kendinizi özelleştirebilirsiniz büyük, lightbox tarzı kalıcı bir pencere olarak.

Umarım bu yardımcı olur.