Ik ben een aantal dagen op zoek geweest voor de juiste oplossing maar die ben ik nog niet tegen gekomen.

Ik zit met de volgende situatie:

In mijn php pagina, laten we zeggen index.php is de structuur als volgt:

<head>
<script type="text/javascript" src="JS/jquery-1.6.2.js"></script>
<script type="text/javascript" src="function.js"></script>
</head>

<body>

<div>
<div><a href="" class="testcat" id="1">Show</a></div> --> middels deze link wordt er inhoud geladen in de volgende DIV (id=producten). Dit wordt gedaan met behulp van de functie dat in function.js is (zie hieronder).
<div id="producten"></div> -->Hier worden de eerste gegevens geladen zonder dat de pagina vernieuwd wordt. Tot hier gaat alles zoals ik wil. In testpage.php worden binnen while loop links aangemaakt. Wat ik nu wil is, als ik op een van de links klik moeten andere gegevens middels testpage2.php op zelfde wijze als bij vorige DIV geladen worden zonder dat de pagina vernieuwd wordt en dat de geladen gegevens in de eerste DIV getoond blijven worden. Deze gegevens moeten geladen worden in de DIV (id=information).
<div id="information"></div>
</div>

--> Ik heb van alles geprobeerd maar het lukt mij niet, de gegevens worden niet geladen.

</body>

function.js:
$(document).ready(function() {
$(".testcat").click(function() {
var testid = $(this).attr("id");
var datastring = 'id='+ testid ;
$.ajax({
type: "POST",
url: "testpage.php",
data: datastring,
cache: false,
success: function(res) {
$('#producten').html("<div class='loading'><img src='IMG/loading.gif' /></div>")
.hide()
.fadeIn(2000, function() {
$('#producten').html(res);
})
}
});
return false;
});

});

Inhoud van testpage.php en testpage2.php is PDO code waarmee gegevens uit de database worden geladen die door een WHILE loop gaan en vervolgens een tabel wordt gegenereerd en in DIV wordt geladen. Verder niets bijzonders.
Eerst kijken of de klik juist wordt behandeld.

verwijder (tijdelijk) de hele js functie in het laatste stuk code en vervang dat door:


$(document).ready(function() {
  $(document).on("click", ".lijst", function() {
    alert("klik");
  });
});


Kunnen we in elk geval zien of de alert wordt gegeven als je op de juiste div klikt en alleen op de juiste div.
Als dat werkt hoef je alleen je event handler in het laatste stuk aan te passen (dus van
$(".lijst").click(function() {
naar
$(document).on("click", ".lijst", function() {
Heel erg bedankt Erwin het werkt. Jij bent een topper!

Ik heb nog een vraag. De gegevens in testpage2.php worden in een session opgeslagen, zie hier onder:

<?php
session_start('lijst');

$id = $_POST['id'];
$action 	= $_POST['action'];

switch($action) {
	
	case "add":
		$_SESSION['lijst'][$id]++;
	break;
	
	case "remove":
		$_SESSION['lijst'][$id]--;
		if($_SESSION['lijst'][$id] == 0) unset($_SESSION['lijst'][$producten_id]); 
	break;
		
	case "empty":
		unset($_SESSION['lijst']);
	break;
	
	echo $_SESSION['lijst'];
	
}
	
?>


als de session LIJST leeg is krijg ik fout melding:

Notice: Undefined index: lijst in testkassa2.php on line 33
Leeg.


linde 33:
if($_SESSION['lijst']) {


als ik dan een ID toevoeg aan session LIJST wordt ID toegevoegd en dat zie op uitvoer pagina alleen krijg ik ook nog twee foutmeldingen, namelijk:

Notice: Undefined index: lijst in testkassa2.php on line 12
Notice: Undefined index: 1 in testkassa2.php on line 12


line 12:
$_SESSION['lijst'][$id]++;


Hoe zou ik deze foutmeldingen kunnen voorkomen?
[php]isset[/php]().

[size=xsmall]Toevoeging op 18/12/2011 16:29:52:[/size]

Dit kan natuurlijk niet:
session_start('lijst');

Gewoon:
session_start();
Hehe, gelukt :-)

Inderdaad, met isset test je of een variabele bestaat.

Reageren