Avatar billede camban Nybegynder
14. august 2005 - 14:55 Der er 31 kommentarer og
1 løsning

New window

Kan ikke få følgende til at virke;

<a href='projekt.php?side=projekt".$afileline[0]."' target='_blank' onclick='window.open(this.href,'newWin','width=400,height=300,status=no,location=no,toolbar=no');return false'><img src='./projektnew/projekt".$afileline[0]."/".$afileline[0]."p.jpg' width='120' height='90' class='imgborder'></a>

Er godt klar over at det er javascript men det står inde i PHP-script...er der nogen der kan hjælpe?
Avatar billede beef12 Nybegynder
14. august 2005 - 15:05 #1
husk semicolon efter "return true"
--> return true;
Avatar billede beef12 Nybegynder
14. august 2005 - 15:06 #2
laver du en echo længere oppe?
Avatar billede olebole Juniormester
14. august 2005 - 15:08 #3
<ole>

beef12 >> Der mangler ingen semikolon i den kode  :)

camban >> Der er intet galt med koden her.
1. hvad betyder: "Kan ikke få følgende til at virke"?
2. er der fejl, ligger de et andet sted

/mvh
</bole>
Avatar billede olebole Juniormester
14. august 2005 - 15:11 #4
Ahhh ... jo, der er ged i dine gåseøjne. Hvordan bruger du koden? Skriver du den ud som en streng, eller?
Avatar billede beef12 Nybegynder
14. august 2005 - 15:12 #5
olebole >> Okay.

Mon ikke problemet i virkeligheden drejer sig om hans at echo'er linket og glemmer at breake sine '
Avatar billede camban Nybegynder
14. august 2005 - 15:13 #6
Jep det gør jeg...skál det være return true

echo "<td rowspan='2' class='cursorhand'><a href='projekt.php?side=projekt".$afileline[0]."' target='_blank' onclick='window.open(this.href,'newWin','width=400,height=300,status=no,location=no,toolbar=no');return false'><img src='./projektnew/projekt".$afileline[0]."/".$afileline[0]."p.jpg' width='120' height='90' class='imgborder'></a></td>";
Avatar billede beef12 Nybegynder
14. august 2005 - 15:16 #7
havde du fejlbesked vi må se?
Avatar billede camban Nybegynder
14. august 2005 - 15:16 #8
Den åbner et nyt vindue men kun pga target blank...
Avatar billede olebole Juniormester
14. august 2005 - 15:20 #9
echo "<td rowspan=\"2\" class=\"cursorhand\"><a href=\"projekt.php?side=projekt".$afileline[0]."\" target=\"_blank\" onclick=\"window.open(this.href,'newWin','width=400,height=300,status=no,location=no,toolbar=no');return false\"><img src=\"/projektnew/projekt".$afileline[0]."/".$afileline[0]."p.jpg\" width=\"120\" height=\"90\" class=\"imgborder\"></a></td>";

- og nej, det skal ikke være 'return true', men 'return false', som du skriver. Det var vist bare en lille 'bøf' fra beef12's side  :)
Avatar billede beef12 Nybegynder
14. august 2005 - 15:22 #10
hov ja - my bad... mente return false...
Avatar billede camban Nybegynder
14. august 2005 - 15:22 #11
Har fået at vide op til flere gange at man skal erstatte \" med '...og det plejer at virke fint?
Avatar billede ksoren Nybegynder
14. august 2005 - 15:27 #12
Når du alligevel sætter variablerne udenfor strengen, kan du måske med fordel benytte apostroffer til at angive strengen, så behøver du ikke så mange backslash

echo '<td rowspan="2" class="cursorhand"><a href="projekt.php?side=projekt'.$afileline[0].'" target="_blank" onclick="window.open(this.href,\'newWin\',\'width=400,height=300,status=no,location=no,toolbar=no\');return false"><img src="./projektnew/projekt'.$afileline[0].'/'.$afileline[0].'p.jpg" width="120" height="90" class="imgborder"></a></td>';
Avatar billede olebole Juniormester
14. august 2005 - 15:28 #13
1. og nu ved du, hvad det indebærer  ;o)
2. hvilken tåbe har dog givet dig et så dårligt råd?
Avatar billede ksoren Nybegynder
14. august 2005 - 15:30 #14
ps. min copy/paste virker ikke så godt. Notepad har det ikke altid så godt med lange linier og automatisk linebrydning
Avatar billede olebole Juniormester
14. august 2005 - 15:35 #15
ksoren >> "Når du alligevel sætter variablerne udenfor strengen, kan du måske med fordel benytte apostroffer"

Nej, der er ingen grund til at skabe problemer for sig selv. Man vælger én måde at escape strenge på ... og den bruger man _altid_!  ;o)
Gør man ikke det, vil man før eller senere komme til at rode forskellige måder sammen - og få problemer. Det er der ingen somhelst grund til  :)
Avatar billede camban Nybegynder
14. august 2005 - 15:38 #16
Jeg er forvirret over alle disse ' " og \" ...

Tjek:

http://www.daydreambeliever.dk/PHPtest/projektnewlist4.php

Melder ikke fejl men status, location osv. er ikke fjernet
Avatar billede olebole Juniormester
14. august 2005 - 16:02 #17
- melder indtil flere fejl ... men det tror pokker. Du har da ikke skrevet det, jeg har skrevet  :)
Avatar billede olebole Juniormester
14. august 2005 - 16:06 #18
Hvad betyder: Jeg er forvirret over alle disse ' " og \"?

Betyder det, at du bliver forvirret - eller at du ikke forstår, hvorfor og hvornår du skal bruge de forskellige tegn?
Avatar billede camban Nybegynder
14. august 2005 - 16:33 #19
Har lige prøvet det du skrev og det virker fint:o)
Problemet er blot nu, at billederne ikke bliver vist...skal jeg rette alle mine ' til "\...måske det løser problemet?
Avatar billede camban Nybegynder
14. august 2005 - 16:34 #20
Og ja jeg ville da sætte pris på en lille forklaring om hvornår man bruger det ene og det andet og det tredje :o)
Avatar billede camban Nybegynder
14. august 2005 - 16:46 #21
Nå en lille fejl fra min side, har rettet og det virker :o)

Jeg vil lige høre om jeg generelt skal rette fra ' til "\ i resten af mine php-filer og scripts?
Avatar billede olebole Juniormester
14. august 2005 - 16:49 #22
Okay ... som jeg selv plejer at bruge gåseøjne - og som jeg har fundet ud af (næsten) aldrig går galt, selvom jeg blander flere sprog:

I HTML bruger jeg altid dobbelte gåseøjne til yder-escaping og enkelte til indre:
  <div onclick="alert('Noget tekst')">

På den anden side bruger jeg også altid dobbelte gåseøjne til at escape PHP-strenge med:
  $s = "Her er en streng";

Skal jeg skrive noget HTML med dobbelte gåseøjne inden i en streng, må jeg altså escape de dobbelte gåseøjne i HTML'en (dobbelte gåseøjne i dobbelte gåseøjne må man ikke):
  $s = "<div onclick=\"alert('Noget tekst')\">";

Når man først har vænnet sig til _altid_ at bruge denne fremgangsmåde, virker den overskuelig - og det går (næsten) aldrig galt  :)

Håber, et simpelt eksempel var nok til at vise fremgangsmåden. Er der stadig tågede områder i forståelsen, må du lige sige til  ;o)
Avatar billede camban Nybegynder
14. august 2005 - 17:00 #23
Okay jeg tror jeg forstår, vil nu prøve at ændre mine andre filer. Opretter et nyt spørgsmål hvis jeg får problemer, så kan det jo være du kan hjælpe endnu engang.
Smid et svar, så siger jeg mange tak for hjælpen :o)
Avatar billede olebole Juniormester
14. august 2005 - 17:17 #24
Selvtak  :)
Lad mig lige endnu engang pointere, at der ikke er noget somhelst syntaktisk galt med den måde, ksoren foreslog dig at gøre det på ... men according to Mr. Murphy  ;o)
"Er der mere end én mulighed, vil den forkerte før eller senere blive valgt!"

Vælger man den måde, jeg viste dig, _hver_ gang, er der ikke noget at være i tvivl om. Man _kan_ komme ud i nogle få, funky JavaScript-koder, hvor der kan opstå problemer - og man derfor må holde tungen lige i bukserne. Som oftest funker det dog upåklageligt  ;o)
Avatar billede camban Nybegynder
14. august 2005 - 17:21 #25
Er det så kun i forbindelse med javascript at man bruger "\ eller er det generelt i al PHP?
Avatar billede ksoren Nybegynder
14. august 2005 - 17:28 #26
Personligt ville jeg skrive det på en helt anden måde. Denne måde virker _hver_ gang - og helt uden brug af escape-karakterer:

echo <<<_HTML_
<td rowspan="2" class="cursorhand"><a href="projekt.php?side=projekt$afileline[0]" target="_blank" onclick="window.open(this.href,'newWin','width=400,height=300,status=no,location=no,toolbar=no');return false"><img src="./projektnew/projekt$afileline[0]/$afileline[0]p.jpg" width="120" height="90" class="imgborder"></a></td>
_HTML_;

// --------

\" bruger du, når du har gåseøjne som indgår i din streng

$str = " streng med \"gåseøjne\"";

eller bliver php forvirret, og ved ikke hvornår strengen slutter
Avatar billede olebole Juniormester
14. august 2005 - 19:00 #27
ksoren >> Ja, men forstår du, det var ikke uden grund, at jeg skrev:
"Vælger man den måde, jeg viste dig, _hver_ gang, er der ikke noget at være i tvivl om"  ;o)

Derimod er dette noget vrøvl:
"Denne måde virker _hver_ gang - og helt uden brug af escape-karakterer"  :)

Du skal nok checke syntaksen for 'here document'. Her kan du nemlig ikke trække array-værdier ud, hvorfor dit eksempel fejler, hvis der er tale om et associativt array, hvilket jo er ekstremt meget brugt i PHP (ikke mindst i forbindelse med MySQL). prøv dette ganske simple eksempel:

echo <<<STREND
en tekst og noget array-møj: $a["to"]
STREND;

echo "<br><br>";

$b = $a["to"];
echo <<<STREND
en tekst og noget array-møj: $b
STREND;

Her skal der bare escapes med {} i stedet:

echo <<<STREND
en tekst og noget array-møj: {$a["to"]}
STREND;

- og så er det jo så som så med:
"virker _hver_ gang - og helt uden brug af escape-karakterer"

Bevares, i dette specielle tilfælde - ja. 'Hver gang' ... næppe  ;o)
Avatar billede olebole Juniormester
14. august 2005 - 19:02 #28
- og det tilhørende array kunne se ud noget à la:
    $a = array("en"=>"one", "to"=>"two", "tre"=>"three");
Avatar billede ksoren Nybegynder
14. august 2005 - 19:04 #29
jeg har jo heller aldrig sagt, at man ikke skulle kigge på den fulde syntax på php.net

selvfølgelig skal der {} rundt om komplekse variabler
Avatar billede ksoren Nybegynder
14. august 2005 - 19:07 #30
Jeg tror min første pointe var, at benytter man sig ikke af inline variabler, kan man lige så godt benytte apostroffer til sine strenge

$str = 'en " streng " med " en " masse " gåseøjne';

er nemmere end

$str = "en \" streng \" med \" en \" masse \" gåseøjne\"";
Avatar billede olebole Juniormester
14. august 2005 - 19:13 #31
Ja - og det er ved Gud en elendig kodestil, for når du så pludselig skal bruge en inline-variabel imorgen, skal du skrive hele møjet om ... og linjen nedenunder står nu med en helt anden escape-syntaks end den, du lige har måtte ændre.
Der må da være grænser for, hvor dybt man skal grave sin grav  ;o)

Min pointe var vist:
"Vælger man den måde, jeg viste dig, _hver_ gang, er der ikke noget at være i tvivl om"  ;o)

"ikke noget at være i tvivl om" er langt mere værd end det pureste guld, når du sidder på 22. programmeringstime og prøver at få økonomien til at hænge sammen - og øjnene fra at falde ud  :)
Avatar billede olebole Juniormester
14. august 2005 - 19:17 #32
- glem ikke, at koderen, der sidder ved siden af dig, skal overtage din kode i overmorgen, når du holder fri med tømmermænd. Han skriver altid med inline-variabler (hvilket i øvrigt er noget 'svineri', som vi andre tit har brokket os over) - og så er der straks ballade  :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester