Как можно получить результат работы 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, время: 12:14. |