2015-12-10 5 views
-1

Основная проблема: Как правильно откликнуться на HTML в моем PHP из Ajax? Моя текущая веб-страница загружает php-эхо в нижней части страницы, а не между тегами <tbody>.Ajax response PHP echo HTML

В принципе, Ajax вызывает PHP-файл, который перекликается с HTML. Мой скрипт находится внутри тела таблицы. Затем мой Php продолжает формат таблицы, добавляя строки. То, что я хочу сделать, - это недельное расписание, которое отображается на отображаемой неделе с помощью кнопки. Может ли мое расписание динамически изменяться и не испортить форматирование?

Следующий код на веб-странице Я загружаю.

 <tbody> 
     <script> 
      function loadWeek(x) { 
       $.ajax({ 
        url:"weekly.php", 
        type: "post", 
        data: {x}, 
        success: function(response) { 
        $(document.body).append(response);         } 
       }); 
      } 
      window.onload=loadWeek(1); //loads the first week of the schedule 
     </script> 
    </tbody> 

Кроме того, будет неделю инкрементора/decrementer, что вызывает Ajax функции разорение форматирования? Нужно ли перезагружать страницу с этой недели?

EDIT: слова

Хорошо позвольте мне объяснить. Я хотел загрузить график 1-й недели, когда страница html загружается изначально. Затем есть кнопки под недельным графиком, чтобы изменить неделю, таким образом, неделю, которую мы хотим просмотреть.

Этот сценарий находится в нижней части кода.

<script> 
    var count = 1; 
    function increment() { 
     ++count; 
     if(count > 4) 
      count = 1; 
     document.getElementById("week").innerHTML = count; 
     loadWeek(count); 
    } 
    function decrement() { 
     --count; 
     if(count < 1) 
      count = 4; 
     document.getElementById("week").innerHTML = count; 
     loadWeek(count); 
    } 
</script> 

код PHP эхо только не возвращается ...

<?php 

if (isset($_POST['p'])) { 
    $week = $_POST['p']; 
    week($week); 
} 

function week($week) { 
    //connects to Database 
    //PDO statements 
    //php double array 
    for ($i = 0; $i < 7; $i++) { 
     echo "<tr><td>$weekDays[$i]</td>"; 
     for ($j = 0; $j < 5; $j++) { 
      echo "<td><p>".$usersNames[$i][$j]."</p></td>"; 
    } 
    echo"</tr>"; 
} 
?> 

Приведенный выше код PHP используется

function loadWeek (x) { 
     $.post("weekly.php", {p: x}, function (res) { 
     $("body").append(res); 
     }); 
    } 
    $(function() { 
     loadWeek (1); 
}); 

код PHP работает захватывая из базы данных. Как я уже сказал, PHP работает, он успешно загружает первую неделю без манипуляций с javascript. Мне не нравится размещать остальную часть кода php, особенно с sqli в коде. Тем не менее, мне нужно, чтобы JS меняла каждую неделю, которую мне нужно увидеть. Форматирование и то, как Ajax имеет дело с ним, когда Ajax сделан, - моя проблема.

+0

Это скорее зависит от того, что вы отправляете с PHP, так что покажите нам, что код тоже – RiggsFolly

+0

* Вы даже видели мой ответ? Разве вы не знаете, как добавить код в сообщение? Шутки в сторону? Вы читали, как публиковать? * –

+0

@PraveenKumar Извините за медленный типер. Я добавил ваш код, но теперь страница html даже не загружает первую неделю при загрузке. Теперь кнопки работают, но загружаются только неделю 1. Наконец, расписание повторяется в нижней части страницы, но не между <"tbody"> теги. – user3920645

ответ

1

Вы все сбиваете с толку. Позвольте мне очистить ваши сценарии ...

function loadWeek (x) { 
    $.post("weekly.php", {p: x}, function (res) { 
    $("tbody").append(res); 
    }); 
} 
$(function() { 
    loadWeek (1); 
}); 

код PHP теперь получает:

$_POST["p"] => x 

В своем первом коде, вы только отправка:

weekly.php?1   // This is not the valid request I believe. 

Теперь мой код изменяет его до:

weekly.php?p=1 // You need to change the `param_name` to whatever here. 
+0

Nice..Но '$ (function() {});' не эквивалентен 'window.onload'. Я предполагаю, что..OP может захотеть загрузить все ресурсы перед тем, как сделать сообщение' http'! – Rayon

+0

@ RayonDabre Yup. http://stackoverflow.com/questions/3698200/window-onload-vs-document-ready. Основная проблема ОП - путь прохождения параметров. Я исправил это. –

+0

@RayonDabre Эй, какова быстрая версия ответа о том, какая разница между $ (function() {}); и window.onload? – user3920645