Jquery ile sql sorgusu nasıl güncellenir

2 Cevap php

Ben yine daha dinamik benim sql sorgu güncellemeye çalışıyorum ama zor beri bulma yaşıyorum PHP ve jQuery hem yeni im.

Şöyle bir ana sayfasını (pagination.php) var:

<?php
function generate_pagination($sql) {
  include_once('config.php');
  $per_page = 3;

  //Calculating no of pages
    $result = mysql_query($sql);
    $count = mysql_fetch_row($result);
    $pages = ceil($count[0]/$per_page);

  //Pagination Numbers
  for($i=1; $i<=$pages; $i++)
  {
    echo '<li class="page_numbers" id="'.$i.'">'.$i.'</li>';
  }
}
?>

<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_pagination.js"></script>

<div id="loading" ></div>
<div id="content" data-page="1"></div>
<ul id="pagination">


<?php generate_pagination("SELECT COUNT(*) FROM explore WHERE category='marketing'"); ?>


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

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

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

Gördüğünüz gibi script üst kısmı sayfalandırmada sayfaların sayısını hesaplayıp sonra kaç sonuç bu sorgudan veritabanında dayalı numaraları görüntüler:

<?php generate_pagination("SELECT COUNT(*) FROM explore WHERE category='marketing'");

Şuydun ben yukarıdaki sorgunun kategori kısmı daha dinamik yapmak istiyorum, zorluk yaşıyorum edilir. Kullanıcı üç bağlantılardan birini tıkladığı zaman, yani, ben bağlantının kimliği jquery kullanarak sorgu kategorisi kısmına yerleştirilmiş olmak tıklandığında istiyorum.

İşte benim jquery kodu:

$("#pagination a").click(function () {

    Display_Load();

    var this_id = $(this).attr('id');
    var pageNum = $('#content').attr('data-page');
    $("#content").load("filter_marketing.php?page=" + pageNum +'&id='+this_id, Hide_Load());    
});

Ben bu anlamda yapılan umuyoruz, ve kimse bu konuda bana yardımcı olabilir, eğer bu harika olurdu.

2 Cevap

Ben değiştirilmesi bu ihtiyacı görmek iki şey vardır. İlk olarak, GET "id" değişkeni sql deyimi olması gerekir, aşağıdaki bakın:

<?php generate_pagination("SELECT COUNT(*) FROM explore WHERE category='".mysql_real_escape($_GET['id'])."'"); ?>

Başka bir şey yeni içerik yüklediğinizde, aynı zamanda yeni içerik bilgilere dayanarak pagination değiştirmeniz gerekir olmasıdır. Bu da gerektirir (1) Başka bir komut dosyası (pagination_links.php gibi) veya Sayfalandırması script (2) bir ayarlama sadece generate_pagination fonksiyonun içeriğini dönecektir.

Bu iki şey dışında, bu kavramsal çalışması gerekir. Dağınık ... ama çalışması gerekir.

Bir dış site olacak, akılda tutmak, bunu yaparken dikkatli olmak gerekir. Eğer JS ile bir SQL sorgusu inşa ediyorsanız size backend bazı kontroller yapıyoruz sürece birisi SQL enjeksiyon yapmak için, bu son derece kolaydır. Benim tavsiyem sadece belli parametreleri geçmek ve sorguyu kendisi oluşturmak için PHP kullanmak olacaktır.