2010-07-29 2 views
0

Эй, я пытаюсь получить идентификатор элемента, а затем разместить этот идентификатор в SQL запросе, как это:Получите идентификатор элемента и сообщения в sql-запросе?

JQuery получает идентификатор флажка:

$(document).ready(function() {  
    $(":checkbox").change(function(){ 
     var id = $(this).attr('id'); 

     $.post("index.php", { id: this.id, checked: this.checked }, 
      function(data){ 
       alert("Data Loaded: " + id); 
      } 
     ); 
     //return false to insure the page doesn't refresh 
    });  
}); 

Затем я вставить, что в PHP запрос, но он ничего не отображает на странице. Что мне не хватает?

$query1 = "SELECT * FROM explore WHERE category IN ('".$_POST["id"]."') 
ORDER BY category LIMIT $start, $limit"; 
+1

В вашем коде нет ничего, что предназначалось для отображения на странице. Вам понадобится, по крайней мере, 1 ° написать некоторый PHP-код для выполнения запроса и вывода его результатов, а 2 ° использовать аргумент «data» для вашего обратного вызова. Кроме того, как написано, ваш запрос уязвим для SQL-инъекции. Используйте mysql_real_escape_string или подготовленные операторы. –

+0

', но он ничего не отображает на странице.', Да, но проблема в том, как * вы отобразили его? вы не указали информацию об этом ... – Reigel

ответ

0

Исправленный код:

$(document).ready(function() {  
    $(":checkbox").change(function(){ 
     var id = $(this).attr('id'); 

     $.post("index.php", { id: $(this).attr('id'), checked: $(this).attr('checked') }, 
      function(data){ 
       alert("Data Loaded: " + data); 
      } 
     ); 
     //return false to insure the page doesn't refresh 
    });  
}); 

Также вы указываете проверяемого имущества внутри вашей функции, но нет такой вещи.

+0

серьезно, если у ОП возникла проблема, этот ответ может сделать это худшим.;) – Reigel

+0

Почему? Я что-то пропустил? – antyrat

+0

'alert (" Data Loaded: "+ $ (this) .attr ('id'));' '' '' '' '' '' относится к ???, проблема не возникает в стороне клиента OP ... Я думаю это на стороне сервера. – Reigel

0

Ok используя antyrat код:

$(document).ready(function() {  
    $(":checkbox").change(function(){ 
     var id = $(this).attr('id'); 

     $.post("index.php", { id: $(this).attr('id'), checked: $(this).attr('checked') }, 
      function(data){ 
       //alert("Data Loaded: " + data); 
$('#output').html(data); 
      } 
     ); 
     //return false to insure the page doesn't refresh 
    });  
}); 

создать <div id="output"></div> внутри тела тега, который где JQuery будет писать ответ тоже.

Смежные вопросы