2010-04-06 4 views
0

Je suis en train d'utiliser jQuery avec MYSQL et j'ai écrit quelque chose comme ceci:jquery lecture simple de MySQL

<html> 

<head> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<script> 
function example_ajax_request() { 
    $('#example-placeholder').html('<p>Loading results ... <img src="ajax-loader.gif" /></p>'); 
    $('#example-placeholder').load("loadres.php"); 
} 
</script> 
</head> 
<body> 
<div id="query"> 
<select name="show" id="box" > 

<option value="0">Select A Test</option> 
<option value="All">--All--</option> 
<option value="M1">Model1</option> 
    </select> 
<input type="button" onclick="example_ajax_request()" value="Click Me!" /> 
</div> 
<div id="example-placeholder"> 
    <p>Placeholding text</p> 
</div></body> 
</html> 

Fondamentalement, je veux passer des paramètres dans le fichier loadres.php. Mais incapable de comprendre la façon exacte de faire. Toute aide est appréciée.

Merci.

+0

Quel genre de paramètres vous voulez envoyer et doit cette URL aussi être utilisé pour modifier les données? En fonction de cela, vous devez utiliser 'GET' ou' POST' pour transmettre vos données. –

Répondre

0
$('#example-placeholder').load("loadres.php?show=" + $('#box option:selected').val()); 

Cela utilisera jquery pour obtenir la valeur sélectionnée dans la liste déroulante et l'ajouter à l'URL comme paramètre querystring, auquel vous pouvez accéder à la page loadres.php.

+0

Cet exemple semble fonctionner, mais le problème auquel je suis confronté est que si j'essaie de transmettre des paramètres en utilisant '+', lorsque je tente de le capturer dans la page de résultats, je n'obtiens pas le signe '+'. Une idée de pourquoi on se dépouille? Ex: 'loadres.php? Show = un + deux + trois – JPro

+0

Vous devez comprendre l'encodage des caractères d'URL. Jetez un oeil à ceci: http://www.permadi.com/tutorial/urlEncoding/ –

3

Vous devez utiliser la méthode $ .ajax() de jQuery. vous pouvez passer des données à l'url et avoir un rappel à la fin.

$.ajax({ 
    url: 'loader.php', 
    data: 'somedata', 
    type: 'GET', 
    success: function(data){ 
    $('#example-placeholder').text(data); 
    } 
}); 

Cela fera l'affaire. Cette méthode fournit également beaucoup plus de flexibilité. Vous pouvez avoir différentes fonctions telles que des fonctions d'erreur et des fonctions complètes.

+0

détails mineurs: l'attr de données devrait être soit une chaîne de requête "foo = bar & baz-boo" ou un hachage par exemple {clé : valeur} Si vous souhaitez publier les éléments de formulaire en tant que params, vous pouvez également faire $ ("form"). serialize() - cet élément select doit être inclus dans un formulaire – danpickett

+0

Merci d'avoir signalé cela. –

0

semblable à saif-bechan's poste, vous pouvez utiliser ajax avec la poste et des données peut contenir un objet à passer plusieurs paramètres

$.ajax({ 
     type:"POST", 
     url: loadres.php, 
     data: { 
       foo:'bar', 
       selected:$('#selector').val() 
     }, 
     dataType: 'json', 
     error: function(data) { 
        //error code here 
     }, 
     success: function(data) { 
         //success code here 
     } 
    }); 

Je note également que est est préférable de mettre votre événement click dans le contexte jquery pas dans le html

donc dans le script utiliser quelque part

$('#button_id').click(function(){ 
     //call to ajax 
};