Hallo allemaal,

onderstaand script selecteerd een aantal produkten uit een database. de structuur van deze database is
id-produkt-fotonaam-tekst-klant-keuze-prijs1-prijs2-prijs3-prijs4.

<?php
$sql="SELECT * FROM produktenalg WHERE tekst= '$_SESSION[imageid]'";
$result=mysql_query($sql) or die(mysql_error());
$regel=mysql_fetch_array($result);
?>
dit werkt prima. dan wordt er een foto bijgzocht dat werkt ook
<a href="javascript:popUp('<?php echo $imagedir.$regel[2].'b.jpg';?>')" ><img src= <?php echo $imagedir.$regel[2].'gr.jpg' ?> class="bestelimage" width=225 height=150 align=right border=none title="klik om te vergroten" /></a>
vervolgens wordt de fotonaam geprint op het scherm.
<h3><?php echo $_SESSION['imageid'];?><br /></h3>
<p>Maak uw keuze:</p><br /><br />
dan kijk ik of er in de tabel prijzen zijn ingevuld om die te koppelen aan radio-buttons
<?php
if($regel[6]>0){$regel[6]=number_format($regel[6], 2, '.', '');echo "<input type='radio' name='keuze' value='$regel[6]$boeket' onclick='vulprijs();' />&nbsp;&euro; $regel[6]<br />";}
if($regel[7]>0){$regel[7]=number_format($regel[7], 2, '.', '');echo "<input type='radio' name='keuze' value='$regel[7]$boeket' onclick='vulprijs();' selected='selected'/>&nbsp;&euro; $regel[7]<br />";}
if($regel[8]>0){$regel[8]=number_format($regel[8], 2, '.', '');echo "<input type='radio' name='keuze' value='$regel[8]$boeket' onclick='vulprijs();' />&nbsp;&euro; $regel[8]<br />";}
if($regel[9]>0){$regel[9]=number_format($regel[9], 2, '.', '');echo "<input type='radio' name='keuze' value='$regel[9]$boeket' onclick='vulprijs();' />&nbsp;&euro; $regel[9]<br />";}
echo "<input type='radio' name='keuze' value=' Anders' onclick='vulprijs();'/>&nbsp;Ik wil wat anders en vul dat in bij de omschrijving van de bestelling en geef dan ook de prijs in.<br />\n<br />\n";
?>
vulprijs(); is een javascript dat de prijs invult uit de database in een apart veld na een klik op de radio-button.
Dit werkt niet

In onderstaand script werkt alles als een zonnetje:
$sql="select * from produktenalg where tekst= '$_SESSION[imageid]'";
$result=mysql_query($sql);
$regel=mysql_fetch_array($result);
?>
dit werkt prima. dan wordt er een foto bijgzocht dat werkt ook
<a href="javascript:popUp('<?php echo $imagedir.$regel[2].'b.jpg';?>')" ><img src= <?php echo $imagedir.$regel[2].'.jpg' ?> class="bestelimage" width=225 height=150 align=right border=none title="klik om te vergroten" /></a>
vervolgens wordt de fotonaam geprint op het scherm.
<h3><?php echo $_SESSION['imageid'];?><br /></h3>
<p>Maak uw keuze:</p><br /><br />
<?php
$pos = strpos( $regel[1], "boeket");
if($pos === 0){
echo "<input type='radio' name='keuze' value='15,00$boeket' onclick='vulprijs();' />&nbsp;&euro; 15,00<br />";
echo "<input type='radio' name='keuze' value='20,00$boeket' onclick='vulprijs();' checked='checked' />&nbsp;&euro; 20,00<br />";
echo "<input type='radio' name='keuze' value='25,00$boeket' onclick='vulprijs();' />&nbsp;&euro; 25,00<br />";
echo "<input type='radio' name='keuze' value='35,00$boeket' onclick='vulprijs();' />&nbsp;&euro; 35,00<br />";
echo "<input type='radio' name='keuze' value=' Anders' onclick='vulprijs();'/>&nbsp;Ik wil wat anders en vul dat in bij de omschrijving van de bestelling en geef dan ook de prijs in.<br />\n<br />\n";
}
$pos = strpos( $regel[1], "bloem");
if($pos === 0){
echo "<input type='radio' name='keuze' value='25,00$boeket' onclick='vulprijs();' />&nbsp;&euro; 25,00<br />";
echo "<input type='radio' name='keuze' value='35,00$boeket' onclick='vulprijs();' checked='checked' />&nbsp;&euro; 35,00<br />";
echo "<input type='radio' name='keuze' value='50,00$boeket' onclick='vulprijs();' />&nbsp;&euro; 50,00<br />";
echo "<input type='radio' name='keuze' value=' Ander Bloemstuk' onclick='vulprijs();'/>&nbsp;Ik wil wat anders en vul dat in bij de omschrijving van de bestelling en geef dan ook de prijs in.<br />\n<br />\n";
}
?>

De reden dat ik wil veranderen heeft te maken met het flexibel maken van de foto's voor op een iPad te tonen, zonder dat er informatie verloren gaat.
bovendien zijn er de volgende verschillen:
in het eerste voorbeeld werkt de body onload niet en in het tweede voorbeeld wel. Ook de check van de gekozen prijs gaat in het eerste voorbeeld altijd naar de laatste radio-button en bij het tweede voorbeeld gaat alles goed.
Het document type is hetzelfde
Wie heeft een idee wat er fout zit, want ik ben hier al een paar dagen naar aan het staren maar zie onderhand niets meer.
bij voorbaat dank
Albert
Leuke rommel :-)

Welke kolommen heb je allemaal in je produktenalg tabel?
Hoi Frank
Zoals ik al schreef
id-produkt-foto-tekst-klant-keuze-prijs1-prijs2-prijs3-prijs4
Dat zijn de kolommen van de tabel de structuur dus
groet
Albert
$regel[8]
$regel[9]
etc

Is er een reden waarom de code onleesbaar moet zijn?
Ik heb gewerkt met code van een ander die op die manier opgezet was. Daarbij waren query's gebruikt met meer dan 20 of 30 kolommen soms. Tel dan maar eens uit of $regel[19] of $regel[20] is wat je nodig hebt.
De reden voor die code was verklaarbaar: ten tijde van het scripten was voor Oracle nog geen ondersteuning in PHP voor associatieve array's.

Maar jij gebruikt nu mysql_fetch_array() op de manier zoals zijn voorloper mysql_fetch_row() werkte. En dat bestaat al sinds php 4.
Met mysql_fetch_array() heb je ook de beschikking over $regel['prijs1'] $regel['id'] etc.
(en als je toch allen met die assoc-oplossing zou werken: dan is mysql_fetch_assoc() een efficiƫntere oplossing.)

Kortom: gebruik gewoon $regel['id'] etc, zodat je code voor een buitenstaander, maar ook voor jezelf over 2 weken begrijpelijk is zonder query's te moeten zoeken en te gaan zitten tellen welke kolom het nu ook weer was.
Nee er is geen enkele reden om dit niet anders te doen. Ik denk dat het de macht van de gewoonte is,maar ik zal mijn leven beteren..
Maar los hiervan is er nog geen antwoord met betrekking tot mijn probleem, nl dat binnen de php code de echo van de javafunctie vulprijs(); alsmede de selected='seleceted' in de ene code wel en in de andere code niet wordt uitgevoerd.
ik denk dat je het best even de resulterende html kunt tonen, ipv het hele php gebeuren om dat aan te maken.

Dus wat staat er met name bij de radiobuttons?
Dit topic kan worden gesloten. Er zat geen fout in het php script maar in de javafunctie vulprijs()
hier stond: if (selectedOne.checked = true){ ....enz}
in plaats van if (selectedOne.checked == true){....enz} met 2 = tekens

In ieder geval bedankt voor de reacties
Albert

Reageren