Toon posts:

mixing HTML en PHP syntax probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
code:
1
2
3
4
<?php if ($x_voorraad < "1") 
{echo '<a href="../emailons/aanvraagleveringstermijn/contact.php?artikeloms=' . urlencode($x_oms) . '&nummer=' . urlencode($x_nummer) . '&partnr=' . urlencode($x_partnr)">
<img src="images/ed_help.gif" alt="Aanvraag Leveringstermijn"></a>';}
elseif ($x_voorraad >= "1") {echo "<img src='../../db_vormgeving/algemeen/leverbaarheid/lights_green.gif'>";} ?>


de bedoeling van het script is als de voorraad groot genoeg is ( een groen gifje verschijnt )
indien anders zou er één aanvraag icoontje moeten verschijnen ( die de variabelen doorgeeft aan één mailform, die dan achter mailadres van de klant vraagt , om zo de leveringstermijn aan deze klant te melden )

PROBLEEM.
ik krijg dit stukje code maar niet aan de praat
ik heb dit niet zelf geprogrammeerd, maar moet nu code stukjes aanpassen,
daar deze collega niet meer bij ons werkt.

Iemand die mij kan vertellen hoe dit euvel op te lossen
alvast bedankt, vermoed dat het te maken heeft met het parsen van ; " en ' maar ik zie het niet.

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 14-02 14:23

TeeDee

CQB 241

Definieer: 'ik krijg dit stukje code maar niet aan de praat'

PHP:
1
2
3
4
<?php if ($x_voorraad < "1") 
{echo '<a href="../emailons/aanvraagleveringstermijn/contact.php?artikeloms=' . urlencode($x_oms) . '&nummer=' . urlencode($x_nummer) . '&partnr=' . urlencode($x_partnr)">
<img src="images/ed_help.gif" alt="Aanvraag Leveringstermijn"></a>';}
elseif ($x_voorraad >= "1") {echo "<img src='../../db_vormgeving/algemeen/leverbaarheid/lights_green.gif'>";} ?>

Ik ben geen held met PHP (lees: 0,0 :)) maar de syntaxhighlighter van GoT haalt er in ieder geval al een tweetal foutjes uit.

Heart..pumps blood.Has nothing to do with emotion! Bored


  • disjfa
  • Registratie: April 2001
  • Laatst online: 08-01 11:17

disjfa

be

Waarom plant je al je code op zo min mogenlijk regels? Regel gewoon de code in meer regels. Dan is het een stuk overzichtenlijker. En makkelijker te debuggen.

Verder zou ik zelf nooit php en html bijelkaar zetten. Code vs template zeg maar.

disjfa - disj·fa (meneer)
disjfa.nl


  • Glabbeek
  • Registratie: Februari 2001
  • Laatst online: 12-02 11:54

Glabbeek

Dat dus.

Het geheel wordt een stuk duidelijker met wat newlines en tabs in je code:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?php 
    if ($x_voorraad < "1") {
        echo '<a href="../emailons/aanvraagleveringstermijn/contact.php?artikeloms=' . 
            urlencode($x_oms) . 
            '&nummer=' . 
            urlencode($x_nummer) . 
            '&partnr=' . 
            urlencode($x_partnr)"><img src="images/ed_help.gif" alt="Aanvraag Leveringstermijn"></a>';
    } elseif ($x_voorraad >= "1") {
        echo "<img src='../../db_vormgeving/algemeen/leverbaarheid/lights_green.gif'>";
    } 
?>


Tip: Een enkele quote is iets anders dan een dubbele quote...

En zo is het maar net.


  • sariel
  • Registratie: Mei 2004
  • Laatst online: 07-12-2025
Tsja, op de 2e regel heb je een stukje html code die je niet met een quote begint. daardoor gaat de rest ook fout.

Copy.com


  • Reinier
  • Registratie: Februari 2000
  • Nu online

Reinier

\o/

PHP:
1
< "1"

vind ik er ook wat vreemd uitzien :)

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Je kan ook binnen een if statement uit php stappen.

PHP:
1
2
3
4
5
if (true) { ?>
<a href="blaaat"><?= $blaat ?></a>
<? } else { ?>
<a href="bar"><?= $foo2 ?></a
<? } ?>


Maar persoonlijk ben ik een voorstander van printf in dit soort gevallen.

PHP:
1
2
3
4
5
6
7
8
9
10
11
if ($x_voorraad < 1) 
{
  printf('<a href="../emailons/aanvraagleveringstermijn/contact.php?artikeloms=%s&nummer=%s&partnr=%s"><img src="images/ed_help.gif" alt="Aanvraag Leveringstermijn"></a>'
  , urlencode($x_oms)
  , urlencode($x_nummer)
  , urlencode($x_partnr));
}
elseif ($x_voorraad >= 1) 
{ 
  echo "<img src='../../db_vormgeving/algemeen/leverbaarheid/lights_green.gif'>";
}

Programmer - an organism that turns coffee into software.


  • mcdronkz
  • Registratie: Oktober 2003
  • Laatst online: 16-04-2025
Tijd om eens op http://smarty.php.net te kijken :)

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07-2025
Of doe hip en modern, gebruik XSLT. Maar als je nog nooit een template gezien hebt, neem een kijkje bij XTemplate, hetgeen erg simpel is.

Maar idd: gebruik templates. Je slaat jezelf voor de kop dat je dat niet veel en veel eerder hebt gedaan :P

Verwijderd

Topicstarter
alvast bedankt voor de tips,
maar Glabbeek zoals je ziet , is de "elseif" niet in groen ( dit is dus ook m'n probleem in dreamweaver )
als ik het parse krijg ik altijd

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in /extranet/artikeldb_viewer/ArtDBlist_weergave_02.php on line 372

die line 372
is lijn 8

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?php  
    if ($x_voorraad < "1") { 
        echo '<a href="../emailons/aanvraagleveringstermijn/contact.php?artikeloms=' .  
            urlencode($x_oms) .  
            '&nummer=' .  
            urlencode($x_nummer) .  
            '&partnr=' .  
            urlencode($x_partnr)"><img src="images/ed_help.gif" alt="Aanvraag Leveringstermijn"></a>'; 
    } elseif ($x_voorraad >= "1") { 
        echo "<img src='../../db_vormgeving/algemeen/leverbaarheid/lights_green.gif'>"; 
    }  
?>

Verwijderd

Topicstarter
BIG thanx LuCarD

It works .... :-)

ben nieuw op dit vlak ( maar alvast bedankt allemaal voor de goeie tips )

  • Blacksnak
  • Registratie: Oktober 2001
  • Laatst online: 07-07-2024
nm, ff aan't nalezen en zit een en ander nog niet goed. FF checken...

[ Voor 95% gewijzigd door Blacksnak op 11-09-2006 11:35 . Reden: foutje ]


  • moozzuzz
  • Registratie: Januari 2005
  • Niet online
code:
1
"><img src="...
Toch even alle posts lezen, dan zie je dat er verschillende opm komen ivm het mixen van HTML en PHP. Bovendien maakt de codeparser van GoT duidelijk waar je moet zoeken!

  • Zyppora
  • Registratie: December 2005
  • Laatst online: 28-01 16:10

Zyppora

155/50 Warlock

Weet niet wie dit zo geprogrammeerd heeft, maar hier krijg ik last van mijn ogen van }:O

PHP:
1
2
3
4
<?php if ($x_voorraad < "1") 
{echo '<a href="../emailons/aanvraagleveringstermijn/contact.php?artikeloms=' . urlencode($x_oms) . '&nummer=' . urlencode($x_nummer) . '&partnr=' . urlencode($x_partnr)">
<img src="images/ed_help.gif" alt="Aanvraag Leveringstermijn"></a>';}
elseif ($x_voorraad >= "1") {echo "<img src='../../db_vormgeving/algemeen/leverbaarheid/lights_green.gif'>";} ?>


Laten we het eens met linebreaks proberen (zoals hierboven al aangegeven):

PHP:
1
2
3
4
5
6
7
8
9
10
11
<?php
if ($x_voorraad < "1") {
echo '<a href="../emailons/aanvraagleveringstermijn/contact.php?artikeloms='
. urlencode($x_oms)
. '&nummer=' . urlencode($x_nummer)
. '&partnr=' . urlencode($x_partnr)
"><img src="images/ed_help.gif" alt="Aanvraag Leveringstermijn"></a>';
}elseif ($x_voorraad >= "1") {
echo "<img src='../../db_vormgeving/algemeen/leverbaarheid/lights_green.gif'>";
}
?>


Hier zien we al een stuk meer. Bijvoorbeeld, zoals ook al aangegeven, dat er single quotes en double quotes door elkaar zijn gebruikt. Het is heel belangrijk deze uit elkaar te houden. Persoonlijk gebruik ik double quotes om het verschil tussen PHP code en (HTML) output aan te geven (HTML tussen quotes) en single quotes om binnen de HTML code tags etc. te doen.

PHP:
1
2
3
4
5
6
7
8
9
10
11
<?php
if ($x_voorraad < 1) {
echo "<a href='../emailons/aanvraagleveringstermijn/contact.php?artikeloms="
. urlencode($x_oms)
. "&nummer=" . urlencode($x_nummer)
. "&partnr=" . urlencode($x_partnr)
. "><img src='images/ed_help.gif' alt='Aanvraag Leveringstermijn'></a>";
}elseif ($x_voorraad >= 1) { // Eigenlijk is het if() gedeelte hier niet nodig
echo "<img src='../../db_vormgeving/algemeen/leverbaarheid/lights_green.gif'>";
}
?>


Let ook op de punt in regel 7, daar miste je er een en dat geeft ook een syntax error. Numerieke waarden hoeven overigens binnen PHP niet per se binnen quotes te staan. Het commentaar over de elseif() structuur slaat eigenlijk op het feit dat als $x_voorraad niet kleiner is dan 1, dat de else dan automatisch wel uitgevoerd wordt. Er bestaan geen andere mogelijkheden dan dat $x_voorraad groter of gelijk is aan 1.

In deze code heb ik trouwens nog een foutje laten zitten. Die mag je zelf opzoeken (zo moeilijk istie namelijk niet). Probeer maar uit.

EDIT: Ben weer goed laat met mijn oplossing :/

Phenom II X4 945 \\ 8GB DDR3 \\ Crosshair IV Formula \\ R9 290


  • BCC
  • Registratie: Juli 2000
  • Laatst online: 22:35

BCC

moozzuzz schreef op maandag 11 september 2006 @ 11:31:
code:
1
"><img src="...
Toch even alle posts lezen, dan zie je dat er verschillende opm komen ivm het mixen van HTML en PHP. Bovendien maakt de codeparser van GoT duidelijk waar je moet zoeken!
Net als elke andere PHP ontwikkel omgeving...

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


  • Reinier
  • Registratie: Februari 2000
  • Nu online

Reinier

\o/

Zyppora schreef op maandag 11 september 2006 @ 11:35:
PHP:
1
2
3
4
<?php
. "&nummer=" . urlencode($x_nummer)
. "&partnr=" . urlencode($x_partnr)
?>

In deze code heb ik trouwens nog een foutje laten zitten. Die mag je zelf opzoeken (zo moeilijk istie namelijk niet). Probeer maar uit.
Je bedoelt vast iets anders, maar de ampersands moeten natuurlijk als &amp; geschreven worden ;)

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Reinier schreef op maandag 11 september 2006 @ 11:57:
[...]

Je bedoelt vast iets anders, maar de ampersands moeten natuurlijk als &amp; geschreven worden ;)
hangt van de doctype af. O-)

Programmer - an organism that turns coffee into software.


  • Zyppora
  • Registratie: December 2005
  • Laatst online: 28-01 16:10

Zyppora

155/50 Warlock

Reinier schreef op maandag 11 september 2006 @ 11:57:
[...]

Je bedoelt vast iets anders, maar de ampersands moeten natuurlijk als &amp; geschreven worden ;)
En heeft meer met de (X)HTML Recommendations te maken dan met de Programming rules ;) Maar goed opgemerkt. (zo kun je overigens ook aangeven dat de laatste img tag geen alt= attribuut heeft, wat ook bij de Recommendations hoort).

Phenom II X4 945 \\ 8GB DDR3 \\ Crosshair IV Formula \\ R9 290

Pagina: 1