Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.11.2016, 12:46
Интересующийся
Отправить личное сообщение для nina_ Посмотреть профиль Найти все сообщения от nina_
 
Регистрация: 26.06.2016
Сообщений: 29

Как можно получить результат работы 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.
В чем может быть проблема?
Ответить с цитированием
  #2 (permalink)  
Старый 14.11.2016, 12:57
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,649

Сообщение от nina_
если просто вписать вручную 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)) ....
Ответить с цитированием
  #3 (permalink)  
Старый 14.11.2016, 13:02
Интересующийся
Отправить личное сообщение для nina_ Посмотреть профиль Найти все сообщения от nina_
 
Регистрация: 26.06.2016
Сообщений: 29

Упс, забыла главное: бд подключить.
Теперь если поставить в test.php
WHERE date.datetrip = '2017-06-11'
сработает, а с переменной (WHERE date.datetrip = '$date_trip') нет, хотя пара name: value передается.
Ответить с цитированием
  #4 (permalink)  
Старый 14.11.2016, 13:03
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,649

Сообщение от nina_
забыла главное
Главное, это безопасность кода, которой у вас и не пахнет, и сам код, ну мягко говоря, ужасен.
Ответить с цитированием
  #5 (permalink)  
Старый 14.11.2016, 13:11
Интересующийся
Отправить личное сообщение для nina_ Посмотреть профиль Найти все сообщения от nina_
 
Регистрация: 26.06.2016
Сообщений: 29

Согласна, но для меня главное сделать сначала мах упрощенно и понять суть как все вместе может работать, потренироваться так сказать.
Ответить с цитированием
  #6 (permalink)  
Старый 14.11.2016, 13:17
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,649

Это никак не оправдывает писать так код. Например, зачем в запросе INNER JOIN, разве нельзя сразу выбрать то, что удовлетворяет и дате, и typeplace?
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить результат работы цикла в виде массива. Tungus Общие вопросы Javascript 29 08.12.2014 18:33
как отображать результаты скрипта немедленно, а не после завершения всей функции? sitar32 Элементы интерфейса 6 28.08.2014 17:27
Несколько запросов к php через AJAX Florens AJAX и COMET 11 25.07.2014 20:21
Получить результат выполнения скрипта на сервере в переменную ява gyper AJAX и COMET 5 19.11.2012 09:36
Как переместить результат работы скрипта? Vlaimir Events/DOM/Window 2 31.08.2009 12:52