Jquery $.Ajax var naar php class
Ik zit met het volgende probleem:
Ik heb 2 select vakken in de eerste staat data uit de database nu wil ik
dat zodra je in het eerste select vak iets hebt gekozen dat aan de hand
van ajax de juiste waarde wordt opgehaald voor het 2de select vak.
Ik weet wel hoe ik dit moet doen maar ik weet niet hoe ik een
variable in js kan sturen naar een functin in mijn class(php) waar ik die waarde
kan gebruiken in dit geval een id en dan de juiste waarde ophalen en weer terug sturen
ik heb nu dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$(document).ready(function() {
$("#product").change(function(){
var id = "id="+$(this).val();
//alert(id);
$.ajax({
type: "POST",
url: "classes/class_Garage.php",
data: id,
cache: false,
success: function(html){
$("#type_product").html(html)
// waarde terug van ajax
}
});
});
});
$("#product").change(function(){
var id = "id="+$(this).val();
//alert(id);
$.ajax({
type: "POST",
url: "classes/class_Garage.php",
data: id,
cache: false,
success: function(html){
$("#type_product").html(html)
// waarde terug van ajax
}
});
});
});
Zoals je kan zien moet ik de data: id kunnen gebruiken in een functie binnenin mijn class: class_Garage.php
maar als het mij lukt om deze var in de class te gebruiken weet ik niet
of ik gewoon een return kan doen zodat de waarde terug komt in success maar eest
ervoor zorgen dat ik var id in mijn class kan gebruiken.
Wie kan me hierbij helpen
Je vervangt dus dit:
url: "classes/class_Garage.php",
en maakt er van, bij voorbeeld:
url: "product.php",
In product.php kan je gebruik maken van $_GET, $_POST, de zelfde $_SESSION.
In het bijzonder heb je dus $_POST['id'] te uwer beschikking.
Daar moet je dus de class includen (of met require) en kan je die gebruiken zoals je wil
Alles wat je echo't in product.php zal terug komen als de variabele html (javascript).
Met andere woorden: de echo in product.php mag enkel bestaan uit een aantal <option> elementen; want dat is het enige wat je als tussen <select id="type_product"></select> mag steken.
---
Dus iets als:
index.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>
$(document).ready(function() {
$("#product").change(function(){
var id = "id="+$(this).val();
$.ajax({
type: "POST",
url: "product.php",
data: id,
cache: false,
success: function(html){
$("#type_product").html(html)
}
});
});
});
</script>
<select name="product" id="product">
<option value="peer">peer</option> <option value="citroen">citroen</option> <option value="appel">appel</option>
</select>
<select name="type_product" id="type_product"></select>
<script>
$(document).ready(function() {
$("#product").change(function(){
var id = "id="+$(this).val();
$.ajax({
type: "POST",
url: "product.php",
data: id,
cache: false,
success: function(html){
$("#type_product").html(html)
}
});
});
});
</script>
<select name="product" id="product">
<option value="peer">peer</option> <option value="citroen">citroen</option> <option value="appel">appel</option>
</select>
<select name="type_product" id="type_product"></select>
product.php
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
require_once "classes/class_Garage.php";
// hier kan je dus de class gebruiken, zoals je wil.
$garage = new Garage();
//$garage-> ....
// wat je hier uiteindelijk wil doen, is enkel <option> elementen echo'en
echo '<option value="' . $_POST['id'] . '">' . $_POST['id'] . '</option>'; // maar dan de options die jij wil...
?>
require_once "classes/class_Garage.php";
// hier kan je dus de class gebruiken, zoals je wil.
$garage = new Garage();
//$garage-> ....
// wat je hier uiteindelijk wil doen, is enkel <option> elementen echo'en
echo '<option value="' . $_POST['id'] . '">' . $_POST['id'] . '</option>'; // maar dan de options die jij wil...
?>
Gewijzigd op 29/10/2012 10:50:09 door Kris Peeters