2010-09-09 1 views
0

Je veux montrer un certain nombre de résultats (par exemple, 5) et faire:Comment afficher le résultat suivant dans MySQL sur "onclick" en JavaScript?

<a href="" onclick="<?php ShowNextResult(); ?>"> 

Et utiliser onlick pour montrer les 5 prochains résultats.

+0

similaires [Utilisation JQuery Ajax pour appeler une fonction php] (http://stackoverflow.com/questions/2842776/using-jquery-ajax-to-call-a-php-function) et [autres ] (http://stackoverflow.com/search?q=call+php+function+from+javascript). –

Répondre

3

EDIT :: HTML

JAVASCRIPT Utilisez Jquery comme ci-dessous

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript"> 
$(function(){ 
     $('#showMore').click(function(event) { 
     event.preventDefault(); 
     $number = $('.result').size(); 

     $.ajax({ 
      type: "POST", 
      url: "getNext.php", 
      data: "count=$number", 
      success: function(results){ 
      $('#results').append(results); 
      } 
     }); 

     }); 

}); 
</script> 

PHP

vous devriez faire une nouvelle page php (getNext.php) qui sera obtenir les résultats de la requête

<?php 
$con = mysql_connect("localhost","peter","abc123"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("my_db", $con); 

$result = mysql_query("SELECT * FROM Persons LIMIT {$_POST['count']},5"); 

while($row = mysql_fetch_array($result)) 
    { 
    echo "<div class='result'>".$row['FirstName'] . " " . $row['LastName']."</div>"; 
    } 

mysql_close($con); 
?> 

AIDE

vous pouvez utiliser quelque chose comme SQL

SELECT x,xx,xxx FROM XxXxXs Limit $_POST['count'],5 
+0

Vous devez probablement mentionner que votre JavaScript nécessite jQuery. –

+0

Si vous pouviez ajouter le moyen d'obtenir les résultats à la fonction, ce serait beaucoup mieux mais +1 pour juste une bonne réponse et merci! –

+0

@Nightmare_IntMain J'ai édité la question .. check it again – trrrrrrm

0

Puisque vous mentionnez spécifiquement JavaScript Je suppose que vous ne voulez pas recharger la page ou quelque chose comme ça. Votre onClick devra déclencher un appel AJAX vers une page php sur votre serveur qui va gérer la requête et vous renvoyer les cinq prochains enregistrements (ou les 5 derniers, ou ceux au hasard, etc ...).

JQuery est vraiment populaire pour ce faire et ont construit en fonctionnalités pour faciliter ce processus.

http://api.jquery.com/jQuery.ajax/

Voici quelques tutoriels: http://docs.jquery.com/Tutorials

Votre meilleur pari est d'écrire cette fonctionnalité w/o l'utilisation de JavaScript. Faites en sorte que la page accepte les arguments pour afficher des enregistrements spécifiques. Une fois que vous avez fait ce code, mettez l'AJAX dessus, mais de cette façon, vous aurez des choses plus anciennes à utiliser si vous avez besoin de compatibilité ou que les choses ne fonctionnent pas comme vous le souhaitez.

Voici des réponses plutôt générales. Avez-vous besoin d'aide spécifique pour que la requête affiche uniquement les 5 enregistrements suivants? Ou le code PHP spécifique pour l'attacher ensemble? Ou juste le JS pour faire les trucs AJAX? Pourriez-vous être plus descriptif si vous avez besoin de plus d'informations.

0

changement

data: "count=$number", 

à

data: "count=" + $number, 

parce qu'alors il est fonctionne pas!

0

Voici ma solution qui montre partiellement des questions de quiz avec des moyens de bouton suivant sur chaque clic au prochain bouton 5 plus de question montrera.

<?php 
    $strSQL="SELECT * FROM `quizes` WHERE Q1 IS NOT NULL ORDER BY RAND()"; 
    $result=mysql_query($strSQL); 
     while($row=mysql_fetch_array($result)){ 
    $c=0; 
    $q[]= $row['Q1']; // This is database record that has all question stored as array 
    ?> 

    <?php 
    for($inc=0; $inc < $ret; $inc++){ ?> 
    <table> 
     <tr id="<?php echo "i".$inc ?>"> 
      <td id="qs"> <?php print_r($q[$inc]); ?></td> 
    </tr></table> 
    <!-- here in i am display all question with loop in this variable $q[$inc] --> 

    <?php } ?> 

    // Now we are going to display partial 
    instead of all so data will display partially with next button 


    <a href="#" id="more">Next/Show More</a> 
    //this is anchor/button on which more questions will load and display when clicked 


    //CSS question are placing in tr (table row) so first hide all question 

    <style> 

    tr{ 
     display:none 
    } 

    </style> 

    //jquery now we will show partial question 5-questions at each click 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 

    <script> 
    $(document).ready(function(){ 
    $("[id=i0],[id=i1],[id=i2],[id=i3],[id=i4],[id=i5]").show(); 
//Display first 5-question on page load other question will 
//show when use will click on next button 

     var i=0; 

     $("#more").click(function(){ // Next button click function 
    //questions tr id we set in above code is looping like this i1,i2,i3,i4,i5,i6... 

    i=i+5; //at each click increment of 5 question 

     var e=i+5; 
//start after the last displayed question like if previous result was 1-5 question then next result should be 5-10 questions... 
     for(var c=i; c < e; c++ ){ 

      $("[id=i"+c+"]").show(); 
      } 

     }); 
     }); 
    </script> 
Questions connexes