2010-04-14 10 views
0

J'ai le code suivant:html Chargement dynamique en utilisant Javascript et PHP

<?php 


if ($x == 1){ 

?> 
    <b>Some html...</b> 
    <?php 
      } 
    else if ($x==2){ ?> 

<b> Other html...</b> 
<?php 
} 
?> 

Maintenant, je voudrais avoir deux liens ci-dessous (a href) et passer en quelque sorte la variable $ x (si Link1 passe x = 1 et Link2 passe x = 2) afin de charger le bit de code pertinent de l'instruction if. Je sais que je peux passer $ x en utilisant le formulaire, puis tester sa valeur et charger le bit de code requis, mais je voudrais le faire en douceur, sans recharger la page. Je pense que JQuery pourrait l'aider, mais je n'ai aucune idée de comment le faire. Toutes les idées grandement appréciées.

+0

Le contenu du HTML 'some'/'other' dépend-il réellement des actions côté client? Si vous voulez simplement passer de l'un à l'autre, vous pouvez envelopper chacun dans un div et afficher/masquer chaque div pour basculer entre les deux. – bobince

Répondre

1

Oublier PHP pour le moment, vous êtes à la recherche de .load jQuery():

<div id="container"></div> 
<a href="javascript:void(0);" onclick="loadContent(1);">Load 1</a> 
<a href="javascript:void(0);" onclick="loadContent(2);">Load 2</a> 

<script type="text/javascript"> 
loadContent = function(content){ 
    $('#container').load(content + '.html'); 
} 
</script> 

ci-dessus le code (non testé, mais au moins proche) insérera le contenu de 1.html, ou 2.html (sur le serveur) dans le div avec id = "container".

Il existe de nombreux tutoriels, comme celui qui est lié dans la réponse de pygorex1, qui couvrent les différentes façons de le faire.

+0

C'est plutôt sympa. Et si je voudrais aussi charger Javascript (pas dans le conteneur, mais dans le document entier)? Est-ce que ça devrait être quelque chose comme document.load (content + '.js') ;? – Vonder

+0

Dans ce cas, vous voudrez: http://api.jquery.com/jQuery.getScript/ – timdev

+0

OK, merci beaucoup. Une chose de plus - le code que vous avez fourni ne charge pas le fichier en réalité. Quand je change le contenu + '.html' en "1.html", c'est le cas. Peut-être une erreur de syntaxe? – Vonder

Questions connexes