Back to top

Autore Topic: ajax nei componenti  (Letto 1324 volte)

Offline kolbac

  • Esploratore
  • **
  • Post: 63
    • Mostra profilo
ajax nei componenti
« il: 14 Mar 2007, 19:35:59 »
ciao ragazzi, sto provando ad usare ajax per il componente che sto sviluppando. Ma ho un problema

questo è il file componente.php
Codice: [Seleziona]


defined('_VALID_MOS') or die('Restricted access');


//include il secondo file di frontend
require_once($mainframe->getPath("front_html"));

switch($task){
case "date":
datepro();
break;
case "prova":
HTML_map::prova();
break;
case "mappa":
default:
visualizzaMappa();
break;
}

function datepro(){
global $mainframe, $database, $my;
$query2 = "SELECT * FROM #__map";
$database->setQuery($query2);
$rows2 = $database->loadObjectList();

$riga=$rows2[$_GET["id"]];
echo $riga->via;

}

questo è il file componente.html.php

Codice: [Seleziona]

<?php 
defined('_VALID_MOS') or die('Restricted access');

class HTML_map{



function prova(){

?>

<script type="text/javascript">
//<![CDATA[
var myRequest = null;

function CreateXmlHttpReq(handler) {
  var xmlhttp = null;
  try {
    xmlhttp = new XMLHttpRequest();
  } catch(e) {
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  xmlhttp.onreadystatechange = handler;
  return xmlhttp;
}

function myHandler2() {
    if (myRequest.readyState == 4 && myRequest.status == 200) {
        e = document.getElementById("ex4result");
        e.innerHTML = myRequest.responseText;
    }
}

function esempio4() {
var nome = document.f1.id.value;
    myRequest = CreateXmlHttpReq(myHandler2);
    myRequest.open("GET","index.php?option=com_componente&task=date&id=" + nome);
    myRequest.send(null);
}

 //]]>
   </script>
 <form name="f1">
Nome: <input type="input" name="id">
<input type="button" onClick="esempio4()" value="Visualizza cognome" /><br />
Risultato: <div id="ex4result"></div>
</form>
<?
}
?>


il problema è questo:
nel momento in cui premo il button "visualizza cognome"
parte la richiesta ottengo l'oggetto, l'unico problema è che non mi viene passato solo il valore che volevo, ma l'intero sito compreso il div <div id="ex4result"></div> aggiornato con il valore richiesto, questo perchè nella
myRequest.open("GET","index.php?option=com_componente&task=date&id=" + nome);
passo come percorso "index.php?option=com_componente&task=date&id=" + nome
quindi ho pensato di mettere il percorso completo, in modo tale da puntare direttamente al file componente.php dove viene eseguita la query che mi dovrà restituire il valore cercato, ma chiaramente mi visualizza Restricted access. Giusto per prova l'ho tolto ma in quel caso mi da errore sull'oggetto $database.
come posso fare.
Scusate se è poco chiaro...
aiutatemi  :'(

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: ajax nei componenti
« Risposta #1 il: 15 Mar 2007, 09:59:43 »
nel momento in cui premo il button "visualizza cognome"
parte la richiesta ottengo l'oggetto, l'unico problema è che non mi viene passato solo il valore che volevo, ma l'intero sito

Beh, direi che è ovvio.
Come tu stesso hai notato, l'invocazione è su index.php?option=com_componente&task=date&id=" + nome e questo comporta la restituzione di tutto il sito; basta provare a richiamare l'URL dal browser...
Quello che devi fare è realizzare una pagina separata, fuori dal framework di Joomla che ti restituisca solo quello che ti serve.


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

 



Web Design Bolzano Kreatif