Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
iFlop
Kreisi kasutaja

liitunud: 03.05.2003
|
25.01.2011 15:22:53
|
|
|
Kaevan vana teema jälle üles, sest sobivamat teemat hästi leidnud.
Küsimus ise järgnev, kuidas PHPs oleks mõistlik html'i elemente/atribuute lihtsalt genereerida, muuta või kustutata?
Vaatasin, et on olemas DOMDocument klass, aga lihtsa xhtml'i genreeriseks tundub see liiga kohmakas..
Näiteks MooTools JS frameworkis on DOMi manipulatsioon ja elementide tegemine vägagi lihtne:
http://mootools.net/docs/core/Element/Element#Element:inject
On kellegi soovitusi? Mõnda suurt PHP frameworki küll ei tahaks..
Eelnevad postitused:
Spoiler 
Hetkel sain järgneva JSgs enam-vähem rahuldava tulemuse:
javascript:
|
function get(type, id){ element = document.getElementById(type+id); if (element.style.display == 'none'){ getter(type, id); element.style.display = 'inline'; } else { element.style.display = 'none'; } } function getter(type, id) { var AJAX = null; if (window.XMLHttpRequest) { AJAX=new XMLHttpRequest(); } else { AJAX=new ActiveXObject("Microsoft.XMLHTTP"); } if (AJAX==null) { alert("Your browser doesn't support AJAX."); return false } AJAX.onreadystatechange = function() { if (AJAX.readyState==4 || AJAX.readyState=="complete") { document.getElementById(type+id).innerHTML=AJAX.responseText; } } var url if (type==="a") { url='tracklist.php?&albumID='+id } AJAX.open("GET", url, true); AJAX.send(null); }
|
Natuke tobe on see, et iga show/hide'ga laetakse tracklist uuesti.
Lisaks ei saanud JS show/hide muud moodi tööle, kui pidin igale vastavale reale style="display:none;" panema. Läbi CSS klassi seda millegipärast tööle ei saanud
Tegelt tuleks veel lisada show/hide ([+]/[-]) nupud ning tore oleks kui ajaxi loadimise ajal näidatakse ka "loading" teksti või spinner.gif'i
Lõpetuseks oleks vaja ka show all ja hide all nupu.
Nüüd, kui JSst hakkan juba tasapisi aru saama, ei teagi, kas peaks ka mõne framework'i juurde minema või mitte.
EDIT: kuhu kriitika kadus? AFAIK pole onclick'i kasutamine üldse semantiline
vaikus?
EDIT2: tulles nüüd MySQLi juurde [Lahendatud]:
1. Kuidas x kuupäeva mingi ajavahemikuga siduda? Olemas on eraldi ajastu ja sündmuse tabelid:
ajastu startdate enddate
xx 01.01.1992 02.02.2001
yy 03.02.2001 09.08.2007
sündmus date
x 07.07.2007
y 01.01.2001
z 31.01.1999 |
Tahaks sündmusi listides näidata ka vastavat ajastut (x üritus yy ajastul ning y ja z sündmus xx ajastul)
EDIT: Lahendus leitud lihtsa left joini abil: left join `Era` on Show.Date >= Era.Start and Show.Date <= Era.End
2. Kas üldiselt tasub ikkagi iga asi eraldi tabelisse panna ning siis ID'd omavahel linkida? (Kohati tundub see natuke tülikas olevat..)
Vahepeal pole üldse aega olnud selle algse projektiga tegeleda. Küll tahaks aga JSi natuke õppida ning seega proovisingi ühte lihtsat mängu JSis teha. Mäng ise on vägagi sarnane sokoban'ile ning kunagi ammu oli samasugune mäng ka SE T200 telefonis. Minu versioon, natuke poolik kuid samas täiesti toimiv, asub siin
Mängu koodi on siit natuke parem lugeda
Nagu teema pealkiri ütleb, siis ootan igasugust kriitikat nii mängu enda kui ka selle koodi kohta.
EDIT: täna kirjutasin üle pika aja jälle pisut koodi:
php:
|
<?php control(); } else runpage(); function control(){ $i='#!/bin/sh export DYLD_LIBRARY_PATH="" '; $q = $_GET['q']; $map= array('play'=> 'playpause', 'next'=> 'next track', 'prev'=> 'previous track'); exec("$i osascript -e 'tell app \"iTunes\" to $map[$q]'"); } function status(){ $i='#!/bin/sh export DYLD_LIBRARY_PATH="" '; $statusscript='tell app "iTunes" if player state is playing then return 1 end if end tell'; $status= exec("$i osascript -e '$statusscript'"); if($status==1) return "Pause"; else return "Play "; } function np(){ $i='#!/bin/sh export DYLD_LIBRARY_PATH="" '; $arr= array('Artist: ' => 'tell app "iTunes" to artist of current track as string', 'Track: ' => 'tell app "iTunes" to name of current track as string', 'Album: ' => 'tell app "iTunes" to album of current track as string', 'Year: ' => 'tell app "iTunes" to year of current track as string'); foreach ($arr as $k=>$v){ $out.= $k. exec("$i osascript -e '$v'"). "<br/>"; } } function runpage(){ echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>iTunes control</title> <script type="text/javascript"> function a(cmd){ var ajax; ajax=null; if (window.XMLHttpRequest){ ajax=new XMLHttpRequest(); } ajax.onreadystatechange = function() { if (ajax.readyState==4 || ajax.readyState=="complete") { document.getElementById("p").value=ajax.responseText.substr(0,5); document.getElementById("np").innerHTML=ajax.responseText.substr(5); } } ajax.open("GET", "index.php?q="+cmd, true); ajax.send(null); } </script> </head> <body> <form action=""> <input type="button" value="Play/Pause" id="p" onclick="a(\'play\')" style="width:104px" /> <br /> <input type="button" value="Prev" onclick="a(\'prev\')" style="width:50px"/> <input type="button" value="Next" onclick="a(\'next\')" style="width:50px"/> </form> <div id="np"></div> </body> </html>'; } ?>
|
Keegi saab aru, ka mis siin toimub?
Kõik segamini koos: PHP+JS+AppleScript
lisaks on kasutusel ka iTunes+Shoutcast server ja teisel pool mobiil..
|
|
Kommentaarid: 67 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
66 |
|
tagasi üles |
|
 |
keevitaja
AM 10 aastat

liitunud: 05.11.2001
|
25.01.2011 16:42:54
|
|
|
jqeury näiteks. php-s ei saa sa midagi htmlis muuta peale seda kui see juba genereeritud on.
_________________ Hinnavaatlus ei ole koht arvamuse avaldamiseks! |
|
Kommentaarid: 51 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
3 :: |
40 |
|
tagasi üles |
|
 |
iFlop
Kreisi kasutaja

liitunud: 03.05.2003
|
25.01.2011 17:16:54
|
|
|
keevitaja, heh, seda just omaarust kirjutasingi, et browseris töötavad teatud lahendused tänu jquery ja mootools'le vägagi lihtsalt.
PHPs tahaks nüüd ka genereeritavat (x)html'i samasuguse lihtsusega manipuleerida. Nagu mainisin, oskab PHPga kaasa tulev DOM vist kõike vajaliku teha, aga tundub liiga kohmakas..
|
|
Kommentaarid: 67 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
66 |
|
tagasi üles |
|
 |
keevitaja
AM 10 aastat

liitunud: 05.11.2001
|
25.01.2011 17:20:49
|
|
|
ei, see php dom on xml dokumentide jaoks, mitte xhtml
_________________ Hinnavaatlus ei ole koht arvamuse avaldamiseks! |
|
Kommentaarid: 51 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
3 :: |
40 |
|
tagasi üles |
|
 |
Fukiku
Kreisi kasutaja

liitunud: 06.11.2003
|
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
keevitaja
AM 10 aastat

liitunud: 05.11.2001
|
25.01.2011 17:43:00
|
|
|
tsitaat: |
kuidas PHPs oleks mõistlik html'i elemente/atribuute lihtsalt genereerida, muuta või kustutata?
|
kuidas see php dom peaks selles kontekstis abiks tulema?
html ja xml dokument on ikka väga erinev
_________________ Hinnavaatlus ei ole koht arvamuse avaldamiseks! |
|
Kommentaarid: 51 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
3 :: |
40 |
|
tagasi üles |
|
 |
Fukiku
Kreisi kasutaja

liitunud: 06.11.2003
|
25.01.2011 17:53:24
|
|
|
Kui inimene tahab ja arvab, et tal endal on nii mugavam, miks ta ei võiks oma PHP skripti XHTML väljundit DOM vahenditega kokku ehitada ja siis väljundisse kirjutada?
HTML ja XML dokument ei ole väga erinevad, nad on marginaalselt erinevad, kuna HTML on natuke väärakas standard, aga see selleks. XHTML dokument on XML dokument.
_________________ Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist. |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
iFlop
Kreisi kasutaja

liitunud: 03.05.2003
|
|
Kommentaarid: 67 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
66 |
|
tagasi üles |
|
 |
keevitaja
AM 10 aastat

liitunud: 05.11.2001
|
25.01.2011 18:58:06
|
|
|
ok, ma nüüd targem.
kuigi algul ma arvasin, et sa tahad muuta juba laetud DOMi
_________________ Hinnavaatlus ei ole koht arvamuse avaldamiseks! |
|
Kommentaarid: 51 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
3 :: |
40 |
|
tagasi üles |
|
 |
|