2015-01-27 7 views
1

Хорошо, поэтому я искал в Интернете столько, сколько мог, и я не мог найти решение по моей проблеме. Я также набрал вопрос и искал ответ, когда увидел похожие вопросы. Не помогло. Я попробовал множество решений.Как обновить файл PHP с помощью AJAX

Ну, у меня есть индексная страница, которая загружает includes/data.php, которая загружает данные из базы данных и эхо-формат .js, который затем загружается функцией и отображает данные на странице, поэтому у меня есть в конце моего index.php что-то например:

<script type="text/javascript" src="includes/data.php"></script> 

На той же странице индекса у меня есть форма, которая вставляет данные в базу данных. Если вы обновите страницу, я увижу обновленный includes/data.php вместе с новыми данными, которые я только что ввел.

Я пытаюсь реализовать AJAX, так что, когда я нажимаю на кнопку вставить данные в базу данных (уже достигли этого) и обновить содержание includes/data.php и index.php поэтому он показывает данные сразу без обновления index.php. Это мой AJAX код:

$('#addtocal').submit(function() { 

    $.ajax({ 
     url  : $(this).attr('action'), 
     type : $(this).attr('method'), 
     data : $(this).serialize(), 
     success : function(data) {  
        // This is the part where I am stuck. 
        }, 
     error : function(){ 
        $(".error").fadeIn(2000); 
        $(".error").fadeOut(2000); 
        } 
    }); 

    return false; 
}); 

Просто говоря уже о том, что #calendar где функция основного JQuery загружается содержимое HTML на основе информации из /includes/data.php. Заранее благодарю за любую помощь, которую вы можете предоставить, и сообщите мне, если вам нужна какая-либо другая информация от меня, чтобы лучше помочь мне.

P.S. Я видел много предложил использовать .load() для загрузки содержимого из includes/data.php, но это не работает в моем случае, как содержание от includes/data.php потребности служить другие функции JQuery, которая создает HTML на лету и и поместить его в #calendar

+1

В обратном вызове 'success' вы можете использовать' $ .loadScript' и попытаться снова вызвать файл includes/data.php. В противном случае вам может потребоваться переосмыслить, как вы извлекаете данные через JS - вместо того, чтобы вытаскивать его из файла PHP (js) с предопределенными значениями, вы должны написать функцию, которая извлекает данные через запрос JSON ... таким образом, ваш будущие данные все еще могут использовать существующие переменные. Опять же, я не знаком с тем, что вы делаете ... вы также можете посмотреть в Angular.js. –

+0

Не могли бы вы просто использовать .html, чтобы заполнить какую-то часть страницы с данными формы hthe с успехом? '$ ('. placeholder'). html (form_submitted_data);' –

+0

Почему вы не возвращаете данные и не обрабатываете новые данные в обработчике успеха? Что получает вывод в 'includes/data.php'? – charlietfl

ответ

0

I заставил его работать. То, что я сделал я INSER $ .ajax фильма внутри $ .ajax и по завершению, и я снова позвонил снова JQuery, который использует /includes/data.php

так что код будет выглядеть примерно так:

$('#addtocal').submit(function() { 

$.ajax({ 
    url  : $(this).attr('action'), 
    type : $(this).attr('method'), 
    data : $(this).serialize(), 
    success : function(data) {  
       $.ajax({ 
         url: "../includes/data.php", 
         dataType: "script", 
         cache: true 
         }).done(function() { 
          // Here I called other jquery function that uses ../includes/data.php 
         }); 
       }, 
    error : function(){ 
       $(".error").fadeIn(2000); 
       $(".error").fadeOut(2000); 
       } 
}); 

return false; 
}); 

Спасибо за ваши help anyway @Half Crazed дал мне ключ, поэтому я получил функцию $ .getScript и увидел способ снова позвонить .js, поэтому я попытался, и это сработало.

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