radiobutton werkt niet zoals het hoort

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Albert B

Albert B

12/01/2014 20:29:18
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?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('
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $imagedir.$regel[2].'b.jpg';?>
')" ><img src=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?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>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?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('
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $imagedir.$regel[2].'b.jpg';?>
')" ><img src=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?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>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_SESSION['imageid'];?>
<br /></h3>
<p>Maak uw keuze:</p><br /><br />
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?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
 
PHP hulp

PHP hulp

23/11/2024 23:47:16
 
Frank Nietbelangrijk

Frank Nietbelangrijk

12/01/2014 21:49:59
Quote Anchor link
Leuke rommel :-)

Welke kolommen heb je allemaal in je produktenalg tabel?
 
Albert B

Albert B

12/01/2014 23:31:41
Quote Anchor link
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
 
Ivo P

Ivo P

13/01/2014 02:34:41
Quote Anchor link
$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.
Gewijzigd op 13/01/2014 02:36:24 door Ivo P
 
Albert B

Albert B

13/01/2014 11:29:35
Quote Anchor link
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.
 
Ivo P

Ivo P

13/01/2014 12:07:51
Quote Anchor link
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?
 
Albert B

Albert B

15/01/2014 18:25:33
Quote Anchor link
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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.