2010-12-04 73 views
0

Salut je veux augmenter la valeur par onclick. mon code est:PHP onclick question?

<?php 
$r=0; 
function goto() 
{ 
$r++; 
} 
echo "<input type=button onclick=goto(); value=ClicktoIncrease >"; 
echo "r value is = $r"; 
?> 

Je pense que l'augmentation de la valeur de r en cliquant sur.

mais cela ne fonctionne pas.

Quelqu'un sait-il pour cette solution?

+9

Vous devez le faire en Javascript. PHP s'exécute sur le serveur. –

+0

Pour augmenter la valeur de PHP, vous devez utiliser AJAX et Session. Mais je doute que vous ayez besoin de faire ça. –

Répondre

3

Vous ne pouvez pas utiliser PHP pour cela. Comme l'a dit Pekka, PHP fonctionne du côté du serveur, alors que ce que vous essayez de faire est l'incrémentation d'une variable côté client. Essayez d'utiliser le Javascript pour cela:

<script type="text/javascript"> 
var r = 0; 
</script> 

et

<button onclick="r++">Increment</button> 
+0

Les boutons peuvent avoir des valeurs 'href'? – Matchu

+0

Merci de m'avoir fait remarquer ... J'utilisais initialement l'élément 'a', puis j'ai décidé d'aller avec' button' :) – Stoic

+2

Eh bien il * peut * le faire en PHP avec Ajax et en utilisant le cache mémoire ... Mais ce n'est probablement pas ce qu'il veut ... –

0

La seule façon d'avoir ces HTML et la Interagir PHP est via une page reload et à mémoriser la valeur de $ r dans une session ou biscuit. De cette façon, chaque fois qu'une personne clique sur le bouton, la page sera actualisée et votre variable augmentera d'une unité. Prenez ce pseudo-code pour un exemple:

<?php 
session_start(); 
if(!isset($_SESSION['r'])) 
    { 
    $_SESSION['r'] = 0; 
    } 

if(isset($_REQUEST['rincrease'])) 
    { 
    $_SESSION['r'] += 1; 
    } 
?> 
<form> 
    <p>Current value of 'r' is <?=$_SESSION['r']?>. 
     Click submit to increase its value.</p> 
    <input type="hidden" name="rincrease"/> 
    <submit /> 
</form> 

Je ne suis pas en face d'un serveur ne peut donc pas vérifier cela, mais il semble bien. Qu'est-ce qu'il fait est d'avoir une valeur cachée dans un formulaire que la page vérifie lors du chargement. Si vous cliquez sur le bouton "Soumettre", le formulaire est renvoyé à lui-même et la valeur de la variable de session "r" est incrémentée

La meilleure façon de le faire serait de mettre en page JavaScript si vous n'avez pas besoin de capturer la valeur de 'r' du côté serveur. Mais même si vous le faites, vous pouvez soumettre la valeur lorsque votre formulaire publie et vous éviter d'avoir à soumettre à nouveau la page chaque fois que vous souhaitez incrémenter la valeur, et également enregistrer votre utilisateur à partir de nombreuses actualisations de page.

Espérons que cela soit informatif.