Salve,
spiego brevemente.
Ho creato questa classe
Diciamo che la uso come libreria, cioè ho diverse pagine e script php che usano i dati contenuti in questo file php, e ne sfruttano i metodi della classe.Codice PHP:class Unit {
// PROPRIETA
public $tribu;
......
// COSTRUTTORE
public function __construct($tribu....) {
$this->tribu = $tribu;
.......
}
// METODI
........
}
// UNITA
$nomeunita = new Unit(1,....);
$nomeunita2 = new Unit(7,....);
....
Gli oggetti ($nomeunita) vengono creati tutti in quel file, in modo da avere tutti i dati che mi servono sempre disponibili, ed evito di andare a creare un nuovo oggetto con i propri attributi in ogni pagina in cui mi serve.
Come detto prima, questa "libreria" è inclusa in tutte le pagine che la sfruttano.
Ho un'altra pagina con una <select> che in base alla scelta che faccio, deve andare a fare dei calcoli in base all'unita selezionata. ad esempio
la funzione calcola() è questa:codice:<select id="selezione" onchange="calcola()"> <option value="$nomeunita1">Unita1</option> <option value="$nomeunita2">Unita2</option> ........
con relativo output....codice:function calcola() { ........... var selezione = il valore assunto dalla select; myRequest = CreateXmlHttpReq(myHandler); myRequest.open("GET","calcola.php?selezione="+escape(selezione)); myRequest.send(null); ..... }
la pagina calcola.php dovrebbe essere questacodice:function myHandler() { if (myRequest.readyState == 4 && myRequest.status == 200) { var risultato = document.getElementById("totale"); risultato.innerHTML=myRequest.responseText; } }
Ecco, così mi ricavo il valore della select (quindi la option selezionata), ad esempio "nomeunita1". In base alla option selezionata, deve lavorare con uno degli oggetti creati nella libreria. Quindi se ad esempio seleziono nella select "nomeunita1", deve lavorare con l'oggetto "$nomeunita1".Codice PHP:<?php
include("libreria.php");
$selezione = $_GET['selezione'];
echo $selezione->metodo(); <------$selezione non è un oggetto!!!
?>
In pratica in calcola.php l'echo deve essere del tipo:
La variabile $selezione diciamo che contiene esattamente il nome dell'oggetto che mi serve, in questo caso $selezione contiene la stringa "$nomeunita1".Codice PHP:echo $nomeunita1->metodo();
Come faccio a far capire allo script con quale oggetto lavorare?
Pensavo di fare un if così:
E questa è già una soluzione al mio problema. Però in quella "libreria" ho circa 40 oggetti, quindi dovrei fare 40 if nel file calcola.php!! E mi sembra una cosa assurda visto che nella variabile $selezione ho già il nome dell'oggetto con cui lavorare!Codice PHP:if ( $selezione == "$nomeunita1")
$nomeunita1->metodo();
Spero di essere stato chiaro, per altre info chiedete pure, grazie.

Rispondi quotando