[php] javascript window.open

Pagina: 1
Acties:
  • 44 views sinds 30-01-2008

  • McFreak
  • Registratie: December 2000
  • Laatst online: 27-04 21:09

McFreak

McFraGG de gekste !!

Topicstarter
Ik heb hier probleempje met een combo javascript php.
Ik zie niet waar het fout gaat
PHP:
1
<?    function showpic($file)    {                $dir="../images/foto/";        echo "<a href='javascipt:window.open('".$dir.$file."'),'rr','width=450'>";        echo "<img src='".$dir.$file."' width=50 height=50 border=0></a></td>";    }?>

De fucntie krijgt een filenaam toegestuurd, waarmee hij een hyperlink moet bouwen met een javascript window.open methode.
Ik krijg het niet voor mekaar ..help plz

McFraGG de gekste !!


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:02

gorgi_19

Kruimeltjes zijn weer op :9

Heb je nog foutmeldingen? Wat geeft de HTML-source weer?
Persoonlijk gebruik ik in plaats van HREF onclick bij het openen van een nieuwe window.

Ik weet trouwens niet of de overige parameters optioneel zijn of niet, van een JS-window

edit:

Daarnaast vind ik dit stukje een beetje vreemd:
[code]a href='javascipt:window.open('".$dir.$file."')[/code]
Moet volgens mij iets zijn van:
[code]a href=\"javascipt:window.open('".$dir.$file."')[/code]
Waarbij \ de escape karakter in PHP is. Maar sowieso: kijk eens naar de HTML-source, werkt denk ik erg verhelderend.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • McFreak
  • Registratie: December 2000
  • Laatst online: 27-04 21:09

McFreak

McFraGG de gekste !!

Topicstarter
de foutmelding is dat er gewoon geen nieuw window wordt gemaakt met dat plaatje erin.

McFraGG de gekste !!


  • McFreak
  • Registratie: December 2000
  • Laatst online: 27-04 21:09

McFreak

McFraGG de gekste !!

Topicstarter
heb nu dit, nog steeds geen nieuw window
PHP:
1
<?    function showpic($file)    {        $dir="../images/foto/";        echo "<a href=\"javascipt:window.open('".$dir.$file."'),'_blank'\">";        echo "<img src='".$dir.$file."' width=50 height=50 border=0></a>";    }?>

McFraGG de gekste !!


Verwijderd

En dit?
PHP:
1
<?function showPic($file) {         $dir = "../images/foto/";         echo "<a href=\"void(0);\" onClick=\"window.open('".$dir.$file."', 'fotoWindow','width=200');\"";         echo "<img src=\"".$dir.$file."\" width=\"50\" height=\"50\" border=\"0\">";}?>

'k heb het niet getest, maar ik denk dat dit wel moet werken.
In j eigen stijl gelaten, zodat je 't direct kan gebruiken :)
Tipje, in hoeverre controleer je verder die $file nog?
lekkere geintjes als $file = "../../../../etc/passwd"; (of wat dan ook) kunnen zo nog wel natuurlijk.

Verwijderd

Op woensdag 24 juli 2002 00:12 schreef gorgi_19 het volgende:
code:
1
a href='javascipt:window.open('".$dir.$file."')

Moet volgens mij iets zijn van:
code:
1
a href=\"javascipt:window.open('".$dir.$file."')
Je kan best een ' gebruiken als je de echo met een " opent. Dat zou volgens mij gewoon moeten werken.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:02

gorgi_19

Kruimeltjes zijn weer op :9

Je kan best een ' gebruiken als je de echo met een " opent. Dat zou volgens mij gewoon moeten werken.
code:
1
a href='javascipt:window.open('".$dir.$file."')

Waar ik mee zat is dat dit serverside best goed kan gaan, maar de clientside javascript kan een beetje in de war raken (halverwege de 'code' wordt dan namelijk al het einde van de 'code' door middel van ' weergegeven.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Ok, daar heb je gelijk in denk ik. Ben ook nog niet zo geleerd in scripten :)

Maar je kan de variabele toch ook 'inpakken' met alleen \" bijvoorbeeld? Ik kreeg gisteren in een topic te horen dat het zo wel beter was maar waarom eigenlijk? Heb het op phpfreakz nooit anders gezien dan '' of "" dacht ik :?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:02

gorgi_19

Kruimeltjes zijn weer op :9

Op woensdag 24 juli 2002 00:36 schreef Xan het volgende:
Ok, daar heb je gelijk in denk ik. Ben ook nog niet zo geleerd in scripten :)
Geeft niet, als je weet wat ik voor blunders maak.. :)
Maar je kan de variabele toch ook 'inpakken' met alleen \" bijvoorbeeld? Ik kreeg gisteren in een topic te horen dat het zo wel beter was maar waarom eigenlijk? Heb het op phpfreakz nooit anders gezien dan '' of "" dacht ik :?
Persoonlijk maak ik het onderscheidt tussen " voor serverside (of openen van een href-tag, etc.) en ' voor gebruik in Javascript. Als ik " ook ga gebruiken tijdens de generatie van clientside javascript, vind ik dit vrij verwarrend overkomen (voor mijzelf dan)

de "" wordt in ieder geval gebruikt als 'concenatie' in VB(script); "" wordt weergegeven als " (dus vergelijkbaar met \" in php)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Kleine uitleg, misschien heb je d'r wat aan.
vanuit PHP geredeneerd, kan " het begin van een string betekenen, de volgende " sluit de string dan.
Wil je dus binnen deze " tekens een " gebruiken, zal je die moeten "escapen" middels een \.
Je krijgt dan dus:
$string = "tekst met een \" teken erin.";
Beginnen met een ' teken kan ook, dan kan je straffeloos een " gebruiken binnen de ' tekens, immers het "string afsluitende teken" is '.
$string = 'tekst met een " teken erin.';

Binnen Javascript geldt ongeveer dezelfde regel, met het verschil dat je dus ook bijvoorbeeld parameters voor een functie hebt die ofwel zonder, ofwel met string afsluitende tekens gebruikt kunnen worden ...
Is het tekst en staan er geen afsluitende tekens omheen, dan is het een variabele, staan ze er wel, dan is het tekst.
alert('voorbeeld.html');
of,
txtString = 'voorbeeld.html';
alert(txtString);
Laten dus beide een popupje zien met de tekst "voorbeeld.html".
Cijfers is weer een ander verhaal, als je daar ook meer over wil weten, geef maar een gil :)

(Niet geheel 100% dekkend/correct, i know, maar hopelijk wel duidelijk)

Verwijderd

Ja, ik snapthe het ongeveer wel maar het gaat me om die variabele die daar tussen '". en ."' staat:
code:
1
'".$dir.$file."'

Waarom ' en " en .? Ik kreeg dus te horen dat ik mijn variabelen in een query zo moest inpakken maar nu zie ik het hier ook in een javascript code staan. Waar is dat goed voor en moet het op nog meer plaatsen zo geregeld worden?

  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 23-08 13:31

Tjark

DON'T PANIC

tip: maak nou eens een test.html waarin je de htmlcode zet die je wilt hebben en test deze (dus dat er een popup komt).

werkt 't?

mooi, bouw het na en kijk of de php output precies hetzelfde is.

bughunten/solven tis toch niet moeilijk?

*insert signature here


Verwijderd

Vanuit PHP:
PHP:
1
<?$waarde = '100';$string = "query met de waarde '".$waarde."'";?>

geeft de string:
query met de waarde '100'
Kijk maar eens naar hoe de string "geopend" en "gesloten" wordt.
Feitelijk staat er:
query met de waarde ' + 100 + '
(plusjes als aanduiding van hoe de string aan elkaar gelijmd wordt)

Verwijderd

Op woensdag 24 juli 2002 01:05 schreef Exodus iets wat zo is als het moet zijn
Maar voegt het nou iets toe? 'var' Werkt ook dus waarom er ". bij zetten?

edit: een linkje naar een site met meer info is of een zoekwoord dan kan ik zelf verder zoeken maar geen idee hoe ik dit moet noemen :)

Verwijderd

PHP:
1
<?echo "<a href='javascipt:window.open'".$dir.$file."'),'rr','width=450'>";?>

misschien:
je vergeet je 'href' stukkie af te sluiten. (1 quote aan het eind vergeten?)
je gebruikt die qoutes nogal raar door elkaar.
gebruik onclick ipv href:

like this:
PHP:
1
<?echo "<href=\"javscript:void()\" onclick=\"javascript:window.open'".$dir.$file."','rr','width=450'\">";?>

  • McFreak
  • Registratie: December 2000
  • Laatst online: 27-04 21:09

McFreak

McFraGG de gekste !!

Topicstarter
wow, diep in de nacht wordt er voor me nagedacht, ik ga het strax ff proberen bedankt gasten

McFraGG de gekste !!


  • McFreak
  • Registratie: December 2000
  • Laatst online: 27-04 21:09

McFreak

McFraGG de gekste !!

Topicstarter
ok moet nog heel even zeiken:
PHP:
1
<?    function showpic($file)    {        $dir="../images/foto/";        echo "<a href=\"void(0);\" onClick=\"window.open('".$dir.$file."', '_blank','width=200');\">";        echo "<img src='".$dir.$file."' width=50 height=50 border=0></a>";    }?>

Hij doet nu de popup, maar het scherm waaruit ik de foto selecteerde, wordt nu een 404

McFraGG de gekste !!


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 14:59

crisp

Devver

Pixelated

Zo dus:
PHP:
1
<?function showpic($file){  $dir="../images/foto/";  echo "<a href=\"javascript://\" onClick=\"window.open('".$dir.$file."', '_blank','width=200');return false\">";  echo "<img src='".$dir.$file."' width=50 height=50 border=0></a>";}?>

Let op de return false in de onClick handler; deze zorgt ervoor dat de uitvoering van de href gecancelled wordt waardoor je geen 404 meer krijgt.

Intentionally left blank


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

En volgende keer je javascript vraagjes in W&G stellen, dat je het met php genereert is niet echt interessant in dit geval, je moet gewoon naar de uitgespuugde HTML kijken en uitzoeken wat daar fout aan is.

window.open vraagjes heb je bij het leven in W&G dus daarom move ik het niet
Pagina: 1

Dit topic is gesloten.