Как мне показать следующий результат в MySQL на «onclick» в JavaScript?

0

Я хочу показать определенное количество результатов (например, 5) и сделать:

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

И используйте onlick, чтобы показать следующие 5 результатов.

Теги:

4 ответа

3
Лучший ответ

EDIT:: HTML

<div id="results">
   <div class="result"></div>
   <div class="result"></div>
   <div class="result"></div>
</div>
<a href="#" id="showMore" />Show more</a>

JAVASCRIPT Используйте JQuery, как показано ниже

<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

вы должны создать новую страницу php (getNext.php), которая получит результаты запроса

<?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);
?>

ПОМОЩЬ

вы можете использовать SQL что-то вроде

SELECT x,xx,xxx FROM XxXxXs Limit $_POST['count'],5
  • 0
    Вы, вероятно, должны упомянуть, что ваш JavaScript требует jQuery.
  • 0
    Если бы вы могли добавить способ получения результатов в функцию, это было бы намного лучше, но +1 просто за отличный ответ и спасибо!
Показать ещё 2 комментария
0

Здесь мое решение, которое показывает вопросы викторины частично со следующей кнопкой, означает, что при каждом нажатии кнопки "Далее" появится еще 5 вопросов.

    <?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>
0

изменить

data: "count=$number",

к

data: "count=" + $number,

потому что тогда это не работает!

0

Поскольку вы конкретно упоминаете JavaScript, я предполагаю, что вы не хотите перезагружать страницу или что-то в этом роде. Ваш onClick должен вызвать вызов AJAX на php-страницу вашего сервера, которая обрабатывает запрос и возвращает вам следующие пять записей (или последние 5, или случайные, и т.д.).

JQuery действительно популярен для этого и имеет встроенные функции, облегчающие этот процесс.

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

Вот несколько руководств: http://docs.jquery.com/Tutorials

Лучше всего написать эту функцию без использования JavaScript. Сделайте аргумент страницы для аргументов, чтобы показать конкретные записи. После того, как вы выполнили этот код, положите AJAX поверх него, но таким образом у вас будет более старый материал, если вы будете нуждаться в совместимости или что-то не работает так, как вам нужно.

Это довольно общие ответы, нужна ли вам конкретная помощь, чтобы запрос показывал только следующие 5 записей? Или конкретный PHP-код, чтобы связать его вместе? Или просто JS, чтобы сделать материал AJAX? Не могли бы вы быть более наглядными, если вам нужна дополнительная информация.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню