2010-11-24 5 views
4

J'ai actuellement un fichier php exécution:Exécution d'un fichier php onclick

<a href="test.php?foo=boo">test</a> 

Je préférerais ne pas avoir à charger une nouvelle page et de le faire onclick.

Est-ce que quelqu'un connaît un moyen simple de faire cela?

J'ai ajouté un exemple plus complet, y compris l'ajax suggéré. J'ai encore du mal à le faire fonctionner.

<script type="text/javascript"> 
    $('li').click(function() { 
    $.ajax({ type: "GET", url: "test.php", data: { foo: 'boo' }, success: function(data){ 
      // use this if you want to process the returned data 
     alert('complete, returned:' + data); 
    }}); 
    }); 
</script> 
</head> 
<body> 
    <div id="header"> 
    <h1>Title</h1> 
    </div>  
    <ul> 
     <li><a href="#">Test</a></li> 
    </ul> 
</body> 
</html> 
+0

Pouvez-vous fournir un peu plus en détail? – Dai

+0

Il a fourni assez je pensais. Il veut qu'un script PHP soit exécuté quand on clique sur le lien sans quitter la page. – Olical

+0

Détail ajouté !!! –

Répondre

5

Oui, comme le disent vos balises. Vous devrez utiliser AJAX.

Par exemple:

$.ajax({ 
    type: "GET", 
    url: "test.php", 
    data: "foo=boo" 
}); 

Il vous suffit de coller que dans une fonction de clic.

$('a').click(function() { 
    // The previous function here... 
}); 

EDIT: a modifié la méthode GET.

+0

pourquoi définissez-vous le type à POST? Jon Wilson a utilisé un lien normal avant, ce qui se traduira par une demande get. – oezi

+0

Force d'habitude désolé. J'utilise toujours la publication à moins que je ne fasse que reprendre les données d'un fichier. Dans quel cas j'utilise get. Je vais changer l'exemple alors. – Olical

+0

Vous n'avez pas "besoin d'utiliser ajax" - c'est une manière sensée de résoudre le problème. Une autre approche consisterait à définir l'emplacement d'un iframe (caché?). – symcbean

5

vous pouvez utiliser jquery et faire quelque chose comme ceci:

$.ajax({ url: "test.php", data: { foo: 'boo' }, success: function(data){ 
     // use this if you want to process the returned data 
     // alert('complete, returned:' + data); 
    }}); 

pour plus d'informations, jetez un oeil à the jquery-documentation

+0

Merci! J'ai ajouté cela mais j'ai encore des problèmes. J'ai modifié mon exemple ci-dessus. –

+0

vous devez envelopper votre code dans un domready-handler, sinon il sera executet avant que le 'li' ne soit loadet et donc n'obtienne pas le click-handler appliqué. wite: '$ (document) .ready (function() {/ * votre code ici * /});' – oezi

-4

Dans votre firl dire par exemple try.html écrire ce code

<meta http-equiv="refresh" content="2;url=test.php?foo=boo"> 

il vous redirigera vers test.php? Foo = boo en 2 secondes

OU Autre façon =========================================

créer un fichier php

<?php 
header('Location: test.php?foo=boo'); 
exit; 
?> 

Hope this aide

+0

c'est exactement ce que Jon Wilson ne veut pas. il voulait traiter test.php _without_ en l'ouvrant dans la fenêtre ou l'onglet en cours ou dans un autre navigateur. – oezi