Как можно получить результат работы php скрипта после отправки данных через ajax
Добрый день
Прошу помощи. Делаю следующее: при клике на чекбокс (с датой) должны отображаться связанные с данным чекбоксом места без перезагрузки страницы. Есть js скрипт, который меняет отмеченный чекбокс и отсылает выбранную дату php cкрипту:
$(function(){
$('.checkbox-row :checkbox').change(function(){
if (!this.checked) return;
$('.checkbox-row :checked').not(this).prop('checked',false);
if ($(this).is(':checked')) {
var chk = $(this).attr("name");
var chkVal = $(this).attr("value");
$.ajax({
url: 'test.php',
type: 'post',
data: { chk: chkVal },
beforeSend: function() { alert(chk+ ' '+chkVal); },
success: function(data) {$('.choose_place').load('test.php', function() {
alert('Load was performed.');
});
}
});
}
});
});
Есть test.php, который делает выборку необходимых мест по переданной дате из бд:
<?php
$date_trip = isset($_POST['chk'])? $_POST['chk']:'';
$sql_select = "SELECT date_place.id_place FROM date_place
INNER JOIN DATE ON date.id_datetrip = date_place.id_datetrip
WHERE date.datetrip = '$date_trip'
AND typeplace = 'available'";
$date_select = mysql_query($sql_select);
$count = mysql_affected_rows();
$info = '';
for($i=0; $i<$count;$i++){
$date_info = mysql_fetch_assoc($date_select);//получаем из контейнера данные как ассоц массив
$info.='<input type="checkbox" name="place[]" id="place_'.$date_info['id_place'].'" value="place_'.$date_info['id_place'].'">';
$info.='<label for="place_'.$date_info['id_place'].'"></label>';
}
echo $info;
И есть текущий файл index.php , в в который после выбора другой даты должен вернуться результат работы php скрипта. Вопрос в том: как можно вернуть результат работы test.php в div class=''choose_place" на странице index.php. Сейчас возращается пустой test.php, дата в test.php передается, запрос в бд рабочий, во всяком случае если просто вписать вручную WHERE date.datetrip = '2017-06-11' он верно выполняется в PhpMyAdmin. В чем может быть проблема? |
Цитата:
mysql_affected_rows - возвращает число затронутых прошлой операцией рядов, операциями INSERT, UPDATE, REPLACE, DELETE. Число же рядов возвращенных операцией SELECT, это mysql_num_rows(). for($i=0; $i<$count;$i++) ... в общем то и не нужно, while($row = mysql_fetch_assoc($date_select)) .... |
Упс, забыла главное: бд подключить.
Теперь если поставить в test.php WHERE date.datetrip = '2017-06-11' сработает, а с переменной (WHERE date.datetrip = '$date_trip') нет, хотя пара name: value передается. |
Цитата:
|
Согласна, но для меня главное сделать сначала мах упрощенно и понять суть как все вместе может работать, потренироваться так сказать.
|
Это никак не оправдывает писать так код. Например, зачем в запросе INNER JOIN, разве нельзя сразу выбрать то, что удовлетворяет и дате, и typeplace?
|
| Часовой пояс GMT +3, время: 00:29. |