Goeiendag, dit is mijn eerste topic op dit forum dus vergeef mij aub als ik sommige dingen niet goed heb begrepen betreft de regels.
Als ik dus onzin praat in jullie ogen (ook als het gaat om mijn werkwijze) dan hoor ik jullie graag, ik ben hier inmiddels om te leren!
Ik ben een student programmeur en voor mijn opleiding ben ik bezig met een simpele boeken winkel te maken met PHP die de boeken uit de DB haalt.


Ik zit meer met het probleem dat ik met behulp van jQuery een pop up te zien moet krijgen zodra er op een informatie knopje wordt geklikt. In deze popup zit extra gegevens over de gekozen boek.
Het probleem is echter dat wanneer ik een boek aan klik, de informatie van alle boeken te zien krijg, wat dus niet de bedoeling is.
Ik heb dit voor elkaar gekregen door het in een while loop te zetten, ik weet dat dit waarschijnlijk niet de goede oplossing is. Alleen ik moet er dus voor zorgen dat alleen de informatie van de gekozen boek te voorschijn komt. Ik heb helaas geen idee dus ik hoopte dat jullie hier mij mee kunnen helpen.

Bedankt voor jullie tijd en ik hoop deel uit te gaan maken van een community die mij kan helpen groeien.
Graag! Ben erg benieuwd! Wist van de $_GET maar waar is voor mij de vraag :P Succes :)
Ik moet zeggen, ik heb echt wel moeite met dit. Ik heb nu de link voor de iban om het info knopje geplaatst, alleen krijg ik een get waarde van %201 ipv 1.. Hierdoor zal hij dus niet de goede boek opvragen.. Kan iemand mij hiermee helpen? Bedankt.

EDIT:

Sorry, echt stom. Was gewoon een spatie.. Ik krijg het nu wel voor elkaar om een iban te getten. Nu nog even uitvogelen hoe de pop up er achter gaat komen welke iban hij moet pakken.

[size=xsmall]Toevoeging op 13/12/2012 16:05:35:[/size]

De browserbalk geeft wel een iban mee, maar zodra ik met de ifisset functie er achter wil komen of de waarde is meegegeven dan geeft hij aan van niet. Plaats ik de if isset functie ergens verkeerd neer?
Dat zal je via ajax moeten doen, ik gebruik zelf bij voorkeur de $.post methode.
Verander de class van de div met de popup in een id (ook even in css aanpassen)
Dan de click event van de class i en telkens het IBAN (???) als id meegeven:

$(".i").click(function() {
	$.post('book.php',
		   {
			   'action': 'showDetails',
			   'IBAN': $(this).attr('id');
		   },
		   function(data) {
			   $("#popup").html(data);
		   },
		   'html'
		   );
});



Ik heb het erin gezet en wat dingetjes wat aangepast, alleen het veranderd niets.

Ik ben ook niet helemaal zeker wat dit stukje code doet, heb namelijk nog geen ervaring met ajax..
$.post doet een request via de post methode, met andere woorden simuleert dit het verzenden van een formulier.
Je moet dan in book.php de request method afvangen en de IBAN staat dan $_POST['IBAN'].
Ik heb helaas een beetje haast anders had ik een klein voorbeeldje gegeven.
Ik heb het voor elkaar gekregen. Een klasgenootje heeft mij geholpen aangezien ik er niet uit kwam, hij heeft alleen heel anders uitgevoerd. Heel simpel maar ook effectief!

De pop up venster:

<!-- De Pop-up venster met informatie over de geselecteerde boek. -->
		<?php
    /* Ik heb je while loop verplaast want je moet voor elk boek een eigen popup maken anders komen ze     allemaal in 1 popup te staan.
    Als je veel boeken hebt zorgt dit wel voor een lange laad tijd en dan word ajax gebruikt.*/
    while($row1 = mysql_fetch_array($result1))
    {
         echo '<div id="popup'.$row1['IBAN'].'" class="popup">
            <table border="0" width="500px">
                  <tr>
                      <td colspan="3"><h3 style="margin-bottom:10px;">'.$row1['titel'].'</h3></td><td class="sluiten"><img src="images/cross.png" id="close" alt="cross" width="17" height="" /></td>
                </tr>
                <tr>
                     <td rowspan="6"><img src="'.$row1['image'].'" alt="Cover" width="200" height="" style="margin-left:10px; margin-right:10px;" /></td>
                       <td><h6>Auteur: '.$row1['auteur'].'</h6></td>
                 </tr>
                   <tr>
                      <td><h6>Beschikbaarheid:'.$row1['voorraad'].'<br /></h6></td>
                 </tr>
                  <tr>
                       <td><h5>Prijs: &#8364;'.$row1['prijs'].'</h5><br></td>
                  </tr>
                <tr>
                       <td><h6>Beschrijving: <br><br><p>'.$row1['beschrijving'].'</p></h6></td>
                </tr>
                <tr>
                     <td><button class="button">Plaats in winkelmandje</button></td>
                </tr>
            </table>
        </div>';
    }
?>
		<!-- Einde van de pop-up venster -->



De tabel met boeken:

			<div id="collectie">
			<table>
				<tr>
					<?php 
					
					// Het ophalen van de boeken en in een tabel zetten met een info-knopje
					
					/* om niet steeds de php te open en te sluiten is het makkelijker als je  met echo werkt.
					als je tijdens de echo een variable wil gebruiken kun je dit doen door '. met punt geef je aan dat er nog iets bij (in dit geval de echo) hoort
					en met .' ga je weer verder met de html ook hier geeft de punt aan dat er nog wat meer komt */
					// Het ophalen van de boeken en in een tabel zetten met een info-knopje
						while($row = mysql_fetch_array($result))
						{
							echo '<td>
								'.$row['titel'].'
								<div id="image" style="background: url('.$row['image'].'); background-size:200px;">
									<div id="i"><a href="javascript:getinfo('.$row['IBAN'].')"><img src="images/info.png" alt="info" width="20" height="" /></a></div>
								</div>
							</td>';
							/* ik heb hier de class weg gehaald want die heb je niet meer nodig.
							 Heb hier een link aangemaakt die een javascript functie oproept die getinfo heet en die krijgt $row['IBAN'] als waarde mee. */
						}
?>
			
				
				

				</div>



En de jQuery code:


//    De jQuery functie voor de popup venster
$(document).ready(function(){
    $(".sluiten").click(function (){
        $(".popup").fadeOut('slow');
    });
   
});
 
/*hier word de functie getinfo() aangeroepen.
de functie gaat er van uit dat die een waarde mee krijgt. */
function  getinfo(IBAN){
    $("#popup" + IBAN).fadeIn('slow');
}



Dus hij heeft er voor gezorgd dat dmv javaScript de id deruit wordt gehaald, en de pop up venster vangt dit af waardoor alleen de desbetreffende boek wordt weergeven.

Bedankt voor jullie hulp!

Reageren