Alternativa a iframe

  • Creatore Discussione Creatore Discussione Pizzi80
  • Data di inizio Data di inizio

Pizzi80

Utente Attivo
3 Set 2014
49
0
0
Salve a tutti

sto facendo un sito per una pizzeria, ho creato un menu in j query e per inserirlo all' interno delle pagine l' ho collegato tramite i frame. Il problema è che ogni volta che si clicca sulle voci del menu la pagina si apre in una nuova finestra.


esiste un modo per evitare di inserire il menu senza usare l' i frame ?
 
Ciao, puoi utilizzare una chiamata ajax
HTML:
<script type="text/javascript">
    $.get("menu.html", function(result) {
        $("#menu").html(result);
    });
</script> 
<div id="menu"></div>
 
non riesco a inserirlo nella pagina però... posso linkarti l' html della pagina?
 
io ho fatto una cosa del genere ma non gira ....

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ajax</title>
</head>
<script type="text/javascript">
    $.get("menu.html", function(result) {
        $("#menu").html(result);
    });
</script> 


<body>
<div id="menu"></div>

</body>
</html>

dove sbaglio?
 
Ultima modifica di un moderatore:
Devi includere la libreria Jquery
 
Devi richiamarla nel file principale altrimenti la funzione ajax() non va
 
in pratica il menu è composto da un file html con codice javascript e che richiama dei file .css e il .js, il menu.html per i quali avevo creato i file .css e il .js era importato nelle pagine del mio sito all' interno di un div attraverso iframe.

adesso ho provato così

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ajax</title>
</head>
<script type="text/javascript" src="jquery-1.3.2.js"></script>
<script type="text/javascript">
    $.get("menu.html", function(result) {
        $("#menu").html(result);
    });
</script> 


<body>
<div id="menu"></div>

</body>
</html>

ma non va lo stesso
 
Ultima modifica di un moderatore:
non è ancora on line cmq ho scaricato un video tutorial di javascript ... vediamo se ne vengo fuori.

Grazie cmq =)
 
qualsiasi libreria jquery puo andar bene, è consigliabile comunque utilizzare la più recente
a me funziona, ma per essere più sicuri è possibile richiamare lo script dopo il caricamento della pagina
pagina principale
HTML:
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>ajax</title>
        <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
        <script type="text/javascript">
            $(document).ready(function(){
                $.get("menu.html", function(result) {
                    $("#menu").html(result);
                });
            });            
        </script>
    </head>
    <body>
        <div id="menu"></div>
    </body>
</html>
menu.html
HTML:
<ul>
    <li>home</li>
    <li>prodotti</li>
    <li>contatti</li>
</ul>
Entrambi i file sono nella stessa cartella, la libreria nel mio caso la prendo dal sito ufficiale, ma, se l'avete sul vostro server è necessario indicare il percorso corretto.
 
Si! Si! Vero funziona me ne sono accorto poco dopo aver scritto il post avevo fatto un errore di digitazione nel codice.
Scusa del post
 
a me non funge

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ajax</title>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$.get("menu.html", function(result) {
$("#menu").html(result);
});
});
</script>
</head>

<body>
<div id="menu"></div>
</body>
</html>


sicuramente sbaglio, ma non capisco cosa
 
a me non funge

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ajax</title>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$.get("menu.html", function(result) {
$("#menu").html(result);
});
});
</script>
</head>

<body>
<div id="menu"></div>
</body>
</html>


sicuramente sbaglio, ma non capisco cosa
Si! Sbagli ma non nel codice perchè il codice funziona bene e se non nel codice dove puoi sbagliare? Pensaci un po', vediamo se ci arrivi da solo, così puoi imparare qualche cosa, altrimenti se te lo dico subito io sarebbe troppo facile e tu non impareresti nulla, poi se proprio non ci arrivi te lo dico.

Ora ti faccio una domanda che ti può mettere sulla buona strada per capire! Al posto di questo, perchè non usi un include lato.client come JavaScript?
 
non basta avere i due html sullo stesso livello e richiamare il menu in un div nel file principale?
 
non basta avere i due html sullo stesso livello e richiamare il menu in un div nel file principale?
No! Nel tuo caso non è quello l'errore, il tuo errore è un'altro e quando te lo dirò sarai molto sorpreso!

Non temere non ti terro sulla corda per molto, però vorrei che ti spremessi un po' le meningi come ho fatto io che sebbene non sono li con te.
 
Mi arrendo io al posto di Pizzi80, spiega.
 
Non stà facendo girere le pagine su un server che interpreta PHP! Confermatemi se ci ho preso
 

Discussioni simili