2009-01-03 5 views
1

J'ai trois boutons et j'ai besoin de sauvegarder quelques données. J'ai une idée, je dois mettre un ID à chaque bouton puis laissez le bouton de sorcière déterminée JS qui a été pressé, comme:jquery & php: sauvegarde de certaines données sans recharger

$("#mySpecifikButton").click(function() 
{ 
....some code here... 
}); 

mais Im coincé. Par exemple j'ai 9 utilisateurs. Tout ce qu'ils ont un ID dans la DB. Alors maintenant, nous avons tous les utilisateurs des lignes distinctes:

<p><a id="userID">user 0</a></p> 
<p><a id="userID">user 1</a></p> 
<p><a id="userID">user 2</a></p> 
<p><a id="userID">user 3</a></p> 
... 

Lorsque je presse sur un utilisateur Specifik Je veux l'ajouter à db par php avec l'aide de jquery. Mais comment l'envoyer en php avec JS (jquery)?

Je pense bien ou y at-il de meilleurs moyens? Si je ne l'ai pas bien décrit, demandez-moi. De ce que je peux voir, vous pouvez utiliser Ajax pour envoyer la valeur du bouton qui a été pressé au script PHP.

Répondre

4

Recherchez le jQuery site pour la documentation sur $ .get et $ .post. :)

Modifier: Maintenant que je ne suis pas sur mon iPod, il sera beaucoup plus facile de taper. : P

Voici ce que je veux dire:

<input type="button" value="Button 1" id="1" /> 
<input type="button" value="Button 2" id="2" /> 
<input type="button" value="Button 3" id="3" /> 
<input type="button" value="Button 4" id="4" /> 

Ensuite, utilisez quelques JS:

<script type="text/javascript"> 
$("input[type=button]").click(function() { 
    $.post("myPHPscript.php",{buttonID: $(this).attr("id")},function(d) { 
    //d is the response from the PHP page. 
    //Do something with it! 
    }); 
}); 
</script> 

+0

Avez-vous un exemple de code phh? D est une expression booléenne? – Adis

+0

d contiendra la sortie du script php. Au lieu de d, vous pouvez utiliser la réponse car elle est un peu plus descriptive. – Morph

0

Vous n'a pas besoin d'utiliser jquery pour que . C'est simple grâce à ajax.

utilisateur 0

utilisateur 1

utilisateur 2

utilisateur 3

--------------------- --------- Fichier script.js ------------------------------------

var xmlHttp; 


ajaxFunction(id){ 

url = anypage.php?Sentid=id; // here you are sending id through GET to any simple db connection mysql and php based page to add to db or anyother function. 

xmlHttp.onreadystatechange=stateChanged; xmlHttp.open("GET",url,true) xmlHttp.send(null) 

}//end of function 


function stateChanged(){   
if(xmlHttp.readyState == 4 || xmlHttp.readyState == "complete"){  // any operation you want to perform here 

    }//end of if 
}//end of function 


function GetXmlHttpObject(){  
var xmlHttp =null; 
var xmlHttp =null; 
if (window.XMLHttpRequest){ 

      // If IE7, Mozilla, Safari, etc: Use native object 
      var xmlHttp = new XMLHttpRequest()  
} 
else { 
    if (window.ActiveXObject){ 

      // ...otherwise, use the ActiveX control for IE5.x and IE6 
      var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
      } 

    }  
    return xmlHttp; 
}//end of function 
+0

Si Adis utilise déjà jQuery (d'après l'apparence de la question, c'est le cas), cela semblera excessif. –

1

Comme il semble que vous faites des changements t o la base de données, je recommanderais d'utiliser le $.post(url, [data], [callback], [type]);link. Vous pouvez simplement poster un formulaire sur le serveur et le traiter comme vous le feriez pour n'importe quel autre formulaire.

0

Vous pouvez utiliser AJAX pour envoyer une requête à une page PHP (comme mentionné ci-dessus avec $.post). Le plus simple est d'avoir une page PHP - disons/insert.php:

<?php 
    some_insert_function($_REQUEST["userid"], ...); 
?> 

puis utilisez:

function go(el) { 
    $.post("/insert.php?items="+el.id); 
} 

EDIT: Vous devez également ajouter une indication visuelle que les données ont bien été envoyé - au moins un message de barre d'état (setStatus("Sent data"), bien que ceux-ci ne toujours travailler), mais de préférence un changement de couleur ou un message-dans-un-div.

Questions connexes