2010-03-24 1 views
0

J'essaie de créer une requête sql dynamique, dans laquelle les utilisateurs cliquent sur un bouton (lien) et l'identifiant de ce lien est envoyé à la requête sql. Je voudrais accomplir cela en utilisant jquery. Mais, étant très nouveau à la fois jquery et PHP, je trouve qu'il est très difficile de faire fonctionner correctement.Essayer d'obtenir une requête sql dynamique avec jquery

Tout d'abord, je dois mentionner que j'utilise this php pagination class. J'ai trois liens sur la page principale qui contiennent les identifiants des catégories que l'utilisateur peut utiliser pour filtrer le contenu.

Si quelqu'un peut m'aider à résoudre ce problème, ce serait formidable. Je vous remercie.

C'est le jquery j'ai commencé, mais comme je l'ai dit, il ne fonctionne pas correctement .:

$(document).ready(function(){ 

    //Display Loading Image 
    function Display_Load() 
    { 
     $("#loading").fadeIn(900,0); 
     $("#loading").html("<img src='bigLoader.gif' />"); 
    } 
    //Hide Loading Image 
    function Hide_Load() 
    { 
     $("#loading").fadeOut('slow'); 
    }; 

// Sort Content Marketing  
$("a.category").click(function() { 
    this_id = $(this).attr("id"); 
    $.get("pagination3.php", { category: this_id }, 
    function(data){ 
     //Load your results into the page 
     $("#content").load('pagination3.php?&category='+ this_id); 
    }); 
}); 



}); 

Voici ce que la page principale ressemble à:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script> 
<script type="text/javascript" src="jquery_page.js"></script> 

<?php 
    //Include the PS_Pagination class 
    include('ps_pagination.php'); 
    //Connect to mysql db 
    $conn = mysql_connect('localhost', 'root', 'root'); 
    mysql_select_db('ajax_demo',$conn); 
    $sql = "select * from explore where category='marketing'"; 
    //Create a PS_Pagination object 
    $pager = new PS_Pagination($conn, $sql, 3, 11, 'param1=value1&param2=value2'); 
    //The paginate() function returns a mysql 
    //result set for the current page 
    $rs = $pager->paginate(); 
    //Loop through the result set 
    while($row = mysql_fetch_assoc($rs)) { 
      echo "<div id='loading'></div>"; 
      echo "<div id='content'>"; 

      echo "<table width='800px'>"; 

       echo "<tr>"; 
        echo"<td>"; 
        echo $row['id']; 
        echo"</td>"; 

        echo"<td>"; 
        echo $row['site_description']; 
        echo"</td>"; 

        echo"<td>"; 
        echo $row['site_price']; 
        echo"</td>"; 
       echo "</tr>"; 

      echo "</table>"; 
      echo "</div>"; 
    } 

     echo "<ul id='pagination'>"; 

      echo "<li>"; 
      //Display the navigation 
      echo $pager->renderFullNav(); 
      echo "</li>"; 

?> 

<a href="#" class="category" id="marketing">Marketing</a> 

<a href="#" class="category" id="automotive">Automotive</a> 

<a href="#" class="category" id="sports">Sports</a> 
+0

le code php ne semble pas pertinent. Quel est le code de pagination3.php, et que se passe-t-il lorsque vous le parcourez? Est-ce qu'il affiche le bon HTML? Aussi, "ne fonctionne pas" est une mauvaise description de votre problème ... – Kobi

+0

pagination3.php est la page principale comme vu ci-dessus. En termes de ne pas travailler, je veux dire, je ne peux pas comprendre comment envoyer les identifiants a.category à la requête SQL pour changer la catégorie lorsque l'utilisateur clique sur un lien. – ClarkSKent

Répondre

0

Un problème est que vous avez deux appels AJAX - get et load. Vous n'avez pas besoin des deux.
Soit utiliser load:

$("#content").load('pagination3.php?&category='+ this_id); 

ou get:

$.get("pagination3.php", { category: this_id }, 
    function(data){ 
    $("#content").html(data); 
    }, "html" 
); 

(Une note de côté est ici que deux appels ne sont pas nécessairement mal - ils pourraient aussi bien le travail aussi, attention pour l'injection SQL. - vous êtes très proche ..)