Joomla.it Forum
Non solo Joomla... => Sviluppo => : dragoalato1988 08 Oct 2011, 22:51:08
-
salve ragazzi, vi chiedo un aiuto con mootools.
sto creando una piccola applicazione dove alla selezione di una opzione da una select motools tramite ajax, manda una richiesta al controller che gli risponde tornando in dietro il risultato in codifica json.
lo script è questo
<script language="javascript">
window.addEvent('domready', function() {
//apro l'evento del select box profilo
$('profilo').addEvent('change', function(event) {
var event = new Event(event).stop();
var selection = document.getElementById("profilo").value;
var data = 'idprofilo='+selection;
var ajax = new Ajax('index.php?option=com_wisp&controller=billing&task=json&format=raw', {
data:data,
update: $('nomeservizio'),
onRequest: function() {
this.options.update.setHTML("Loading...");
},
onComplete: function(text) {
var stringa = Json.evaluate(text)
this.options.update.setHTML(stringa);
},
onFailure: function() {
this.options.update.setHTML("Il profilo non è stato trovato correttamente");
}
});
ajax.request();
});
// chiufo la select box profilo
});
ora il risultato che mi stampa è [object Object].
il contenuto della stringa è [{"srvname":"Prepagato 24 ore di connessione da ora","downrate":"2097152"}]
quello che vorrei fare è estrapolare dal risultato json il singolo valore ad esempio
<div id="srvname" > Json->srvname <>
come posso fare? sarò grado a chi mi possa illuminare
-
difficile capire cosa stai facendo, quella task json nel controller billing cosa fa? che dati raw unisce alla view raw
M.
-
Ti ringrazio per avermi risposto.
function json()
{
$ricevuti = JRequest::getVar('idprofilo');
$dbxo = new externaldatabase ( 'radius' );
$db = $dbxo->getDB ();
$query = "SELECT srvname, downrate FROM rm_services WHERE srvid = '".$ricevuti."'";
$db->setQuery( $query );
$ricevuti = $db->loadAssocList();
if ($db->getErrorNum()) {
echo $db->stderr();
return false;
}
$response = $ricevuti;
echo json_encode($response);
}
}
questo è quello che c'è nel controller
-
perchè c'è un echo e non un return? ..debug?
Si vede qualcosa?
Sicuro che la query ritorni qualcosa? provato a fare un dump di quella query?
M.
-
bè dalle prove che effettuo se inserisco "return" non mi da nulla.
invece stampo a monitor la rica "echo json_encode($response);", il risultato prodotto se apro l'indirizzo all'link "index.php?option=com_wisp&controller=billing&task=json&format=raw"
mi da il seguente risultato "[{"srvname":"Prepagato 24 ore di connessione da ora","downrate":"2097152"}]"
questo risultato viene letto dalla funsione onComplete.
onComplete: function(text) {
var stringa = Json.evaluate(text)
this.options.update.setHTML($stringa);
},
quello che mi servirebbe e poter giocare con i risultati. in poche parole vorrei rendere il risultato separato cosi da estrapolare il valore di "srvname" e stamparlo in un div o un <a>
-
http://php.net/manual/en/function.json-decode.php
M.
-
sono a conoscenza del json_decode il fatto è che il risultato deve essere modificato in rial time con ajax.
mi serve che alla funzione onComplete, lo script mi vada a prendere i valori della stringa json e me li vada a stampare al volo nei div.
è possibile farlo con Json.evaluate?
-
ci sto sbattendo la testa ma nulla. devo trovare l'equivalelente di json_decode ma in mootools.
il bello è che le funzioni le ho trovate ma per mootools ultima relase.
a me serve poter estrapolare i dati singoli dalla stringa
[{"srvname":"Prepagato 24 ore di connessione da ora","downrate":"2097152"}]
che tra l'altro usando la funzione $type di mootools mi dice che è un array, mentre il risultato della funzione Json.evaluate è [object Object]
come posso risolvere secondo te?
-
Ciao, secondo me dato che json.evaluate restituisce un'oggetto proverei così:
onComplete: function(text) {
var stringa = Json.evaluate(text),
this.options.update.setHTML(stringa.srvname);
},
ciao