Archief - selecteer ==> bevestig, array/doorgeefprobleem

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Pieke

Legacy Member
ik heb een klein probleempje waar ik geen oplossing voor weet/vind.

Je hebt een pagina waarop alle producten worden getoond (vanuit een databank) en je kan 1-meer producten bestellen (aanvinken) + daarbij een aantal (drop list met max van 10 of minder al naargelang aantal nog ter beschikking).

Nu wil ik als je dat verzend, een overzicht geven van alles wat is aangevinkt + aantal daarbij om dat te bevestigen.
Ik kan echter mijn aantal niet laten weergeven (als het niet is aangevinkt geeft hij 0 door overigens)

mijn code:
voor de pagina om het aan te duiden

PHP:
<?php 
function laat_producten_zien(){ 
		
		echo '<div id="productencontainer">' ;
		
		echo '<h1>Producten in ons gamma</h1>' ;

		echo '<table cellpadding="5" summary="productenoverzicht" CELLSPACING="5" rules="all">' ;
		echo '<tr> <th>productnaam</th> <th>prijs</th> <th>selecteer</th> <th>aantal</th> </tr>' ;
		$res_producten = pg_query("SELECT * from \"r1serwin\".producten order by naam"); 
	 		 //we selecteren alle gegevens uit de tabel producten

		while($obj_producten  = pg_fetch_object($res_producten)){  
			echo '<tr> <td>' .$obj_producten->naam . '</td>'  ;
			echo '<td>' .$obj_producten->prijs . '</td>' ;
			echo '<td> <input type="checkbox" value = "' .$obj_producten->productnr . '"name = "productnr[]"></td>';
			echo '<td> <select name = "aantal_te_bestellen[]" size = "1">' ;
		
			for ($getal = 0; $getal<=$obj_producten->aantal_op_stock && $getal<=10; $getal++) {
						echo "<option value=\"$getal\">$getal</option>\n"; 
			} 
			echo '</select></td></tr>' ;
		  }
			 echo '<tr> <td></td> <td></td> <td></td> <td align="center"><input type="submit" value="verstuur" /></td>' ;
  		 echo "</table>"; 
			 echo '</div>' ;
} 
?>


om dat te laten weergeven:

PHP:
<?php
function valideer_bestelling () {

		echo '<div id="productencontainer">' ;
		
		echo '<h1>Bestel deze producten</h1>' ;

		echo '<table cellpadding="5" summary="productentebestellen" CELLSPACING="5" rules="all">' ;
		echo '<tr> <th>productnaam</th> <th>prijs</th> <th>aantal</th> </tr>' ;
		$res_producten = pg_query("SELECT * from \"r1serwin\".producten order by naam"); 
	 		 //we selecteren alle gegevens uit de tabel producten
		
    $index = 0 ;
		while($obj_producten  = pg_fetch_object($res_producten)){  
			foreach ($_GET['productnr'] as $productnr) {
		    if ($productnr == $obj_producten->productnr) {
					echo '<tr> <td>' .$obj_producten->naam . '</td>'  ;
					echo '<td>' .$obj_producten->prijs . '</td>' ;
					echo '<td>' .$_GET['aantal_te_bestellen[$index]'] . '</td></tr>' ;
				}
			$index ++ ;
		  }
		}
			 echo '<tr> <td></td> <td></td><td align="center"><input type="submit" value="bevestig bestelling" /></td>' ;
  		 echo "</table>"; 
			 echo '</div>' ;	
}
?>


ik denk dat er iets mis is met $_GET['aantal_te_bestellen[$index]'] maar ik weet het niet zeker :)

Lashknife

Legacy Member
ik heb het niet helemaal overlezen, maar je gebruik single quotes (letterlijke interpretatie) om idd die aantal_te_bestellen[$index] op te vragen
daardoor plakt hij rechtstreeks $index in die string en gans die value slaat op niks natuurlijk.

Je vraagt gewoon $mijnaantal = $_GET['aantal_te_bestellen'] op en dan zit in $mijnaantal een array met uw geselecteerde elementen. Die kan je aflopen op eender welke manier je een array kan aflopen.
Eventueel doe je een print_r($mijnaantal) om zelf even te kijken hoe die get value er uitziet en hoe je dat best afhandelt in jouw toepassing.

Ik snap ook niet goed waar jouw $index vandaan komt... maar dat zou dan correct $_GET['aantal_te_bestellen'][$index] zijn om de element uit jouw array aan te spreken
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan