Salve,
se io utilizzo classi e oggetti in php, quando faccio la chiamata ajax ad un'altra pagina php, come faccio a fargli usare le variabili/oggetti che ho nel file chiamante?
Salve,
se io utilizzo classi e oggetti in php, quando faccio la chiamata ajax ad un'altra pagina php, come faccio a fargli usare le variabili/oggetti che ho nel file chiamante?
Chiedi ai moderatori di spostarti nel forum PHP. È una questione che non riguarda javascript.![]()
Devi fare un echo di codice javascript nella pagina da PHP che poi potrai usare con javascript e con le richieste ajax.
ad es, se scrivessi questo nel file php
Poi potrai usare quella variabile prova da javascript.codice:$mia_variabile_php = "ciao ciao"; echo "<script type=text/javascript>var prova = \"" . $mia_variabile_php . "\";</script>
In questo modo puoi anche creare oggetti javascript se programmi ad oggetti anche con javascript, ecc...
No, la questione è: Se io ho un oggetto istanziato in una pagina php(chiamiamolo pagina1.php), quando faccio la richiesta AJAX ad un'altra pagina php(pagina2.php), come posso fargli vedere l'oggetto istanziato nella pagina1.php?
Originariamente inviato da carlomarx
Chiedi ai moderatori di spostarti nel forum PHP. È una questione che non riguarda javascript.![]()
Non puoi trasferire degli oggetti php da una pagina ad un'altra tramite javascript...Originariamente inviato da Vicar
No, la questione è: Se io ho un oggetto istanziato in una pagina php(chiamiamolo pagina1.php), quando faccio la richiesta AJAX ad un'altra pagina php(pagina2.php), come posso fargli vedere l'oggetto istanziato nella pagina1.php?
O la trasformi in un oggetto javascript (trasformandolo in stringa), la stampi nell'html e poi nella richiesta ajax la invii alla pagina2 e da lì ricostruisci l'oggetto.
oppure l'unico modo per trasferire un oggetto in php da una pagina php ad un'altra è memorizzarla in sessione ($_SESSION)
Esiste un metodo pertrasformare un oggetto in stringa?
Come li contatto i moderatori?
E come vuoi trasformarli?Originariamente inviato da Vicar
Esiste un metodo pertrasformare un oggetto in stringa?
Come li contatto i moderatori?
Devi stabilire una convenzione e fare tipo un metodo toString con il quale lo converti e magari un costruttore con una variabile stringa dal quale lo ricostruisci...
es.
fai echo $oggetto->toString() per stampare quella stringa sull'html della pagina ed usarla con javascript, poi quando rileggi quella stringa da pagina2.php dopo la richiesta AJAX, chiami $oggettoLetto = new Classe($stringaAjax); e verra' ricomposto l'oggetto..codice:class Classe { private $id; private $nome; public __construct($stringa) { // qui costruisci l'oggetto dalla stringa letta tramite javascript } public toString() { return $id . ";" . $nome; } }
sì, puoi serializzarliOriginariamente inviato da Vicar
Esiste un metodo pertrasformare un oggetto in stringa?
http://php.net/manual/en/function.serialize.php
![]()
Sempre a complicarsi la vita
foo.php
bar.phpCodice PHP:
$properties = array(
'propertyOne' => 'valueOne',
'propertyTwo' => 'valueTwo',
'propertyThree' => 'valueThree',
);
echo json_encode(array('properties' => $properties));
ajax pageCodice PHP:
$properties = isset($_POST['properties']) ? json_decode($_POST['properties']) : null;
// todo: your stuff
Non l'ho testato quindi potrebbe anche non funzionare è giusto per darti l'idea.Codice PHP:
$.ajax({
url: [url to foo.php],
type: "GET",
success: function(response) {
$.ajax(
url: [url to bar.php],
type: "POST"
data: response,
dataType: "json",
success: function(response) {
// todo: your stuff
},
error: function(objResponse) {
console.log('fail');
},
complete: function() {
console.log('done');
}
)
},
error: function(objResponse) {
console.log('fail');
},
complete: function() {
console.log('done');
}
});
Tieni presente che la chiamata ajax innestata potrebbe causare problemi data la natura asincrona della chiamata stessa. Meglio adottare altre tecniche, ma non voglio entrare nel merito ora.