herqMedlem sedan aug. 2000201 inlägg
jag försöker korta ner dessa _tre_ (fungerande) rader...
echo "<a href=\"?page=1";
echo $searchquery ? '&searchquery=' . $searchquery: '';
echo "\">1</a>";
...till _en_ (för närvarande icke fungerande) rad...
echo "<a href=\"?page=1" . $searchquery ? '&searchquery=' . $searchquery: '' . "\">1</a>";
_en_-raden skriver bara ut:
&searchquery=XXXXXX
medan de _tre_-raderna skriver ut:
<a href="?page=1&searchquery=XXXXXX">1</a>
ovanstående resultat önskas, fast med _en _-raden metoden.
förstår ni?
hjälp mig.
jag blir inte mkt klokare, än vad jag redan är, av http://www.php.net/echo
storebror_1984Medlem sedan dec. 2003171 inlägg
testa följande:
echo ("
<ahref=\"page=$prev" .$searchquery ? '&searchquery=' .$searchquery: '' . "\">$page</a>
");
storebror_1984Medlem sedan dec. 2003171 inlägg
så borde det se ut om jag förstått dig rätt =)
herqMedlem sedan aug. 2000201 inlägg
nä funkar inte.
är ju _exakt_ samma exempel som som min en-radare, bara lite fulare. :) ;)
MatteMedlem sedan aug. 20002 970 inlägg
Din mittersta rad är en if-sats i kortform, och den tror jag inte du kan slänga in rakt upp och ner i en echo.
Vill du ha det på en rad så får du nog göra så här:
echo !empty($searchquery) ? "<a href=\"?page=1&searchquery=$searchquery\">1</a>" : "<a href=\"?page=1\">1</a>";
Eller på två rader:
$searchquery = !empty($searchquery) ? '&searchquery=' . $searchquery : '';
echo "<a href=\"?page=1$searchquery\">1</a>";
WebslaveMedlem sedan maj 2002662 inlägg
eller:
echo "<a href=\\"?page=1&searchquery=".$searchquery."\\">1</a>";
herqMedlem sedan aug. 2000201 inlägg
matte>> men jag VILL att det ska gå o "slänga in rakt upp och ner", VARFÖR GÅR INTE DET, det borde det göra.
webslave>> jo visst, det funkar, har gjort så, med det är för enkelt, o det är ju inte som jag vill att det ska funka, heh, äsch, jag får väl finna mig i det då.
tack allihopa.
MatteMedlem sedan aug. 20002 970 inlägg
Anledningen till att det inte går är att du har följande kod, skrivet på ett annat sätt:
echo "<a href=\"?page=1";
if ($searchquery) {
echo '&searchquery=' . $searchquery;
} else {
echo '';
}
echo "\">1</a>";
herqMedlem sedan aug. 2000201 inlägg
matte>> ja vet, det var så det såg ut från början, men det är ju liksom hela 7(!) rader, o det går ju inte för sig. :)
ok, anledningen till varför jag tycker att det _borde_ fungera.
enl http://www.php.net/echo
så funkar ju följande alldeles ypperligt:
echo $some_var ? 'true': 'false';
o det är ju liksom en _if()_ "innästlat" i en _echo"";_
så delvis går det ju att "slänga in rakt upp och ner"
o att då få in lite text innan o efter tycker jag inte ska vara så svårt.
följande fungerar ju exempelvis ypperligt även det:
echo "blaha text" . date("U") . "blaha text";
eller tycker ni att jag är helt ute o cyklar med det här resonemanget?
MatteMedlem sedan aug. 20002 970 inlägg
Jag förstår hur du tänker, men syntaxen är:
(sant/falskt) ? (om sant) : (om falskt);
Lägger du till något före så blir det istället:
(kod_före_sant/falskt) ? (om sant) : (om falskt_kod_efter);
Och det första uttrycket ger parse error.
Vill du köra med den syntaxen så blir det som jag skrev tidigare:
echo !empty($searchquery) ? "<a href=\"?page=1&searchquery=$searchquery\">1</a>" : "<a href=\"?page=1\">1</a>";
lunne82Medlem sedan dec. 2003153 inlägg
Men (1)
echo $some_var ? 'true' : 'false';
är inte samma som (2)
echo "<a href=\"?page=1" . $searchquery ? '&searchquery=' . $searchquery : '' . "\">1</a>";
eftersom i (2) är variabeln $some_var = "<a href=\"?page=1" . $searchquery.
Borde du inte skriva nåt i stil med
echo "<a href=\"?page=1" . ( $searchquery ? '&searchquery=' . $searchquery : '' ) . "\">1</a>";
om nu PHP accepterar parenteserna så som de är tänkta.
Tänk bara på att främst behålla läsbarheten i koden, inte bara minska antalet rader.
herqMedlem sedan aug. 2000201 inlägg
lunne82>> jjaaaaaa!!! ditt sista kodexempel, det var precis det jag menade och var ute efter. det funkar alltså. tack. vad bra. nu kan jag sova lugnt.
dessa förbannade parenteser.
fast nu har jag redan löst det på ett annat mindre estetiskt men ändock bättre rent processor/prestandamässigt sätt.
/red
fresten tycker jag att _en_ rad bidrar enormt mkt mer till en lättlästare (kan man komparera 'lättläst' till superlativ?) kod än vad _sju_ rader gör ;) :e
lunne82Medlem sedan dec. 2003153 inlägg
fresten tycker jag att _en_ rad bidrar enormt mkt mer till en lättlästare (kan man komparera 'lättläst' till superlativ?) kod än vad _sju_ rader gör
"fresten tycker jag att _en_ rad bidrar till enormt mkt mer lättläst kod än vad _sju_ rader gör"
tror jag det blir. :)
herqMedlem sedan aug. 2000201 inlägg
men min superlativ'a version skulle bli: _lättlästast_.
ok, kanske inte _mest lättläst_ :e, men helt klart coolast, låter lite som 'sex laxar i en laxask'.
WebslaveMedlem sedan maj 2002662 inlägg
herq:
Hehe... jag missuppfattade dig helt och hållet... typpiskt mig.