PHP ver gevorderde |
|
beronne schreef: Het wegschrijven van me output ben ik nog mee bezig ik heb net ergens gelezen dat je niet rechtstreeks een variable in jquery naar een class functie kunt schrijven maar daarvoor een
tussenbestand voor nodig hebt. Dus bijvoorbeeld je stuurt data naar index.php daar zorg je doormiddel van $_GET of $_POST dat je die waarde naar de class stuurt dan een return doet terug naar index.php die moet er dan weer voor zorgen dat hij terug komt naar de success:function hier ben ik dus nu mee aan het spelen Ik vind je omschrijving erg vaag, maar ik denk te snappen wat je zegt.
Het feit dat je die "omweg" moet maken is heel simpel. Een klasse is slechts een blauwdruk, maar het bevat nog niks. Een klasse zal nooit wat uitvoeren, totdat je er een object van maakt. In dit object kan je enkel en alleen public methoden en attributen benaderen.
Bijv:
<?php
class Auto {
protected $autoNaam;
protected $wielen;
public $merk;
public function __construct($autoNaam) {
$this->autoNaam = $autoNaam;
}
public function setAantalWielen($i) {
if(is_numeric($i)) {
$this->wielen = $i;
}
}
public function getNaam() { return $this->autoNaam; }
public function getAantalWielen() { return $this->wielen; }
}
?>
<?php class Auto { protected $autoNaam; protected $wielen; public $merk; public function __construct($autoNaam) { $this->autoNaam = $autoNaam; } public function setAantalWielen($i) { $this->wielen = $i; } } public function getNaam() { return $this->autoNaam; } public function getAantalWielen() { return $this->wielen; } } ?>
Voordat ik iets kan doen met deze klasse moet ik er eerst een object van maken. Ik heb namelijk alleen een blauwdruk, de auto zelf bestaat nog niet. Dit is hetzelfde als jou garage.
auto.php
<?php
require_once 'autoclass.inc.php';
$auto = new Auto("Swift");
$auto->setAantalWielen(4);
$auto->merk = "Suzuki";
echo "Ik heb een ". $auto->getNaam() . " van het merk ". $auto->merk ." met ". $auto->getAantalWielen() ." wielen";
?>
<?php require_once 'autoclass.inc.php'; $auto = new Auto("Swift"); $auto->setAantalWielen(4); $auto->merk = "Suzuki"; echo "Ik heb een ". $auto->getNaam() . " van het merk ". $auto->merk ." met ". $auto->getAantalWielen() ." wielen"; ?>
en voilla, we hebben een auto. Via jQuery (of gewoon js) kan je dit nu aansturen, echter zal je auto.php moeten ombouwen..
<?php
require_once 'autoclass.inc.php';
if(isset($_GET['merk']) && isset($_GET['wielen'])) {
$auto = new Auto($_GET['merk']);
$auto->setAantalWielen($_GET['wielen']);
$auto->merk = "Suzuki"; // dit weten we gewoon, wij zijn een suzuki dealer xD
echo json_encode("Ik heb een ". $auto->getNaam() . " van het merk ". $auto->merk ." met ". $auto->getAantalWielen() ." wielen");
}
?>
<?php require_once 'autoclass.inc.php'; if(isset($_GET['merk']) && isset($_GET['wielen'])) { $auto = new Auto($_GET['merk']); $auto->setAantalWielen($_GET['wielen']); $auto->merk = "Suzuki"; // dit weten we gewoon, wij zijn een suzuki dealer xD echo json_encode ("Ik heb een ". $auto->getNaam() . " van het merk ". $auto->merk ." met ". $auto->getAantalWielen() ." wielen"); } ?>
En voilla, we hebben een bestand wat terug kan praten, klaar voor ajax requests.
Zoals je ziet gebruik ik json_encode, omdat jij meteen de teruggegeven html gelooft kan jij dit in dit geval weglaten. Ik raad je echter wel aan om wat studie te doen om het gebied json. |