Autore Topic: Problema con Chronoform V4 e funzione Ajax  (Letto 1720 volte)

Offline ladybug85

  • Nuovo arrivato
  • *
  • Post: 2
    • Mostra profilo
Problema con Chronoform V4 e funzione Ajax
« il: 07 Ott 2012, 18:22:21 »
Ciao a tutti,
è un giorno che sto dietro a questo problema.
Sto facendo un sito per un agenzia immobiliare e ha necessità di un form.
Ho preso da Internet un codice già pronto per Chronoform e creare i 3 campi regione, provincia e comuni annidati e usa Ajax.
Solo che quando vado a compilare la prima dropdown firebug mi dice che non trova la funzione New Ajax().
Mi manca qualche plug in per abilitazione di Ajax??
Vi posto il codice in modo da vedere se c'è qualcosa che non va!!!
Grazie mille
Codice: [Seleziona]
<script type="text/javascript">
var id_select_to_write = "";
function PopolaProvince() {
if (document.getElementById("select_regioni").value == "00"){
alert ("Attenzione: Devi selezionare una regione.")
SvuotaSelect('select_comuni');
SvuotaSelect('select_province');
return;
}
document.getElementById("attesa").innerHTML = ' Attendere....';
CosaFare = "PopolaProvince";
SvuotaSelect('select_comuni');
SvuotaSelect('select_province');
id_select_to_write = "select_province";
var id = document.getElementById("select_regioni").value;
var url = "index2.php?option=com_chronocontact&chronoformname=form_ajax&Funzione="+CosaFare+"&id="+id;
new Ajax(url, {
method: 'get',
onComplete: parseResult
}).request();
}
function PopolaComuni() {
document.getElementById("attesa").innerHTML = ' Attendere....';
CosaFare = "PopolaComuni";
id_select_to_write = "select_comuni";
var id = document.getElementById("select_province").value;
var url = "index2.php?option=com_chronocontact&chronoformname=form_ajax&Funzione="+CosaFare+"&id="+id;
new Ajax(url, {
method: 'get',
onComplete: parseResult
}).request();
}
function parseResult(request)
{
var msg = request.split('##@##');
document.getElementById("attesa").innerHTML = "";
document.getElementById(id_select_to_write).innerHTML=msg[1];
if(document.all)
{
ie = "<option>opzione</option>" + msg[1];
document.getElementById(id_select_to_write).innerHTML=ie;
document.getElementById(id_select_to_write).outerHTML = document.getElementById(id_select_to_write).outerHTML;
}else{
document.getElementById(id_select_to_write).innerHTML=msg[1];
}
if (CosaFare == "PopolaProvince"){
PopolaComuni();
}
}
//questa funzione svuota la select "id_select" nella pagina html
function SvuotaSelect(id_select){
num_option=document.getElementById(id_select).options.length;
for(a=num_option;a>=0;a--){
document.getElementById(id_select).options[a]=null;
}
}
</script>
<p><div id="attesa"> </div></p>
<div class="form_item">
<div class="form_element cf_dropdown">
<label class="cf_label" style="width: 150px;">Regione</label>
<select onchange="PopolaProvince()" id="select_regioni" size="1" name="select_regioni">
<option value="00">Seleziona una regione...</option>
<?php
$database 
= &JFactory::getDBO();
$sql "SELECT * FROM #__regioni";
$database->setQuery($sql);
$results $database->loadAssocList();
/*quì sotto, la variabile $regioni vierne popolata con il nome
*delle regioni è il loro id, generando quindi un output sequenziale
*del tipo "<option value=19>Piemonte</option> [br /]........"
*/
for($i=0$ct=count($results); $i $ct$i++) {
echo 
"<option value=".$results[$i]['id'].">".$results[$i]['name']."</option> [br /]";
}
?>
         
</select>
</div>
<div class="cfclear">&nbsp;</div>
</div>
<div class="form_item">
<div class="form_element cf_dropdown">
<label class="cf_label" style="width: 150px;">Provincia</label>
<select class="cf_inputbox" id="select_province" size="1" title=""  name="select_province" onchange="PopolaComuni()">
</select>
</div>
<div class="cfclear">&nbsp;</div>
</div>
<div class="form_item">
<div class="form_element cf_dropdown">
<label class="cf_label" style="width: 150px;">Comune</label>
<select class="cf_inputbox" id="select_comuni" size="1" title=""  name="select_comuni">
</select>
</div>
<div class="cfclear">&nbsp;</div>
</div>
<div class="form_item">
<div class="form_element cf_textarea">
<label class="cf_label" style="width: 150px;">Messaggio</label>
<textarea class="cf_inputbox" rows="2" id="text_3" title="" cols="30" name="text_messaggio" ></textarea>
</div>
<div class="cfclear">&nbsp;</div>
</div>
<div class="form_item">
<div class="form_element cf_button">
<input value="Invia Messaggio" name="button_4" type="submit" />
</div>
<div class="cfclear">&nbsp;</div>
</div>



Grazie mille a tutti per l'aiuto!!!

Offline ladybug85

  • Nuovo arrivato
  • *
  • Post: 2
    • Mostra profilo
Re:Problema con Chronoform V4 e funzione Ajax
« Risposta #1 il: 09 Ott 2012, 11:30:47 »
Allora volevo aggiornavi...
Ho letto un pò di cose e alla fine ho capito che con joomla 2.5 le funzioni sono cambiate.
New Ajax() è diventata new Request e .request è diventata .send().
Perciò ho modificato il codice .Infatti ora l'errore è cambiato....
Mi dice che PopolaProvince() is not defined.
Ma io nel codice l'ho definito... :'(

Grazie a tutti

Offline jabber

  • Esploratore
  • **
  • Post: 114
    • Mostra profilo
Re:Problema con Chronoform V4 e funzione Ajax
« Risposta #2 il: 23 Mar 2014, 17:24:40 »
Ciao,

tempo fa avevo risolto così (non sto a scrivere tutto), il server ritornava roba del tipo come: "<div>Il mio bel codice/div>"

e sul client (cioè JS) all'interno della funzione AJAX "onComplete", se il param ritornato
lo chiamiamo "response", allora il codice ritornato dal server lo prelevavo così:
content = response[0].outerHTML;

Se il server avesse ritornato solo il testo puro senza il tag <div>, cioè: "Il mio bel codice"

Non saprei proprio come ottenere lo stesso testo sul client.
Ho provato in tutti i modi a gestire il parametro "response", ma in questo caso ho sempre fallito.

Ciao

 

Host

Torna su