Jquery $.Ajax var naar php class

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mr Beronne

Mr Beronne

28/10/2012 18:23:33
Quote Anchor link
Beste Lezers,

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)
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
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
                    }
                });                
            });            
        });

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
 
PHP hulp

PHP hulp

26/04/2024 11:54:11
 
Kris Peeters

Kris Peeters

29/10/2012 10:49:37
Quote Anchor link
Om te beginnen: class_Garage.php is een bestand waar de class gedefiniëerd is. class_Garage.php is niet een bestand waar de class wordt gebruikt.

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)
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
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>


product.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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...
?>
Gewijzigd op 29/10/2012 10:50:09 door Kris Peeters
 



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.