2014-08-28 6 views
0

У меня есть небольшая проблема с перезагрузкой содержимого div. У меня есть форма, которая разделена на 4 шага. На втором этапе люди могут добавлять предметы (подарочные карты или чеки) Когда кто-то добавляет новый элемент, этот элемент добавляется в массив, который хранится в сеансе. После добавления элемента я хотел бы показать элемент клиенту, поэтому я хотел обновить/перезагрузить div с помощью функции PHP, которая показывает данные.Как перезагрузить div

<div class="kosten" id="kosten"> 
       <?php 
        if($session->exists('stap2')) { 
         echo $lijst->output(); 
        } 
       ?> 
</div> 

Функция exists является проверить, если сессии были установлены. Функция output - это функция вывода html с данными сеанса.

Так что есть я пытался до сих пор: Сначала я пытался сделать что-то вроде:

$('#kosten').load('index.php'); 

Это, однако, привело к показывая мне index.php, но я был в шаге 1. Я также пытался добавить JavaScript/JQuery, чтобы показать шаг 2, но это тоже не помогло

Вторая вещь, которую я пытался:

setInterval(function() { 
        $('#kosten').text(); 
       }, 3000); 

В результате я показал мне половину пустой страницы. Он не перезагрузит нижнюю половину страницы. И с интервалом вы также увидите, что div перезагружается.

Третье, что я пробовал, это сделать еще одно сообщение для PHP. Это было бы как echo $lijst->output() в качестве возврата. Но это дало мне массив вместо html

Так что я хотел бы сделать, это перезагрузить div, а не страницу после нажатия кнопки «добавить элемент». Есть ли другой способ сделать это?

Заранее спасибо

ответ

0

Я решил проблему с добавлением еще $ .post. Там я повторил искомая функция

echo $lijst->output(); 

После этого я мог бы использовать это в качестве answer функции, которую я тогда мог бы использовать для

$('.kosten').html(answer); 

Doing это решить мою проблему.

1

JQuery имеет возможность добавить селектор, чтобы сделать то, что вы ищете:

$('#kosten').load('index.php #kosten'); 
+0

Если я это сделаю, он также отправит меня на первый шаг, который я стараюсь избегать – SuperDJ

+0

Подождите, так как сервер знает, что он должен вернуть второй шаг, а не первый шаг? –

+0

Поскольку 'output()' будет использоваться только для шага 2. А также потому, что в файле, где обрабатываются все сообщения ajax, это будет использоваться только для 'step2' и' output() ' – SuperDJ

0

Я не знаю, что index.php содержит, но вы можете попробовать добавить index.php url вместо index.php.

$('#kosten').load('url of index.php'); 
+0

Не должно иметь значения , Я считаю жестким, что он всегда должен возвращаться к index.php домена.За исключением случаев, когда вы вызываете функцию из другой папки – SuperDJ

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