jQuery Ajax вызывает скрипт на успех - PullRequest
1 голос
/ 23 сентября 2010

Это сводило меня с ума в течение нескольких дней. Я отчаянно нуждаюсь в помощи.

У меня есть 2 файла, index.php и test.php, упрощенная версия для подражания.

index.php

<div id="div-hi"></div>
<div id="div-bye"></div>

<script>
$(document).ready(function(){ setInterval(function(){
$( function() 
{
$.ajax( 
{
url : 'test.php',
type : 'post',
success : function( resp ) 
    {
    $('#div-hi').html(resp);
    $('#div-bye').html(resp);
    }
});return false;}
);}, 1000);});  
</script>

test.php

<div id="hi">
<script type="text/javascript">
---
</script>
</div>

<div id="bye">
<script type="text/javascript">
----
</script>
</div>

Я хочу, чтобы # div-hi в index.php содержал результат моего JavaScript из #hi из test.php и # div-bye из index.php содержал результат из #bye из test.php. *

У меня закончились идеи. Пожалуйста, помогите.

1 Ответ

1 голос
/ 23 сентября 2010

Ваш Javascript:

У вас есть несколько дополнительных скобок и скобок, и я не знаю, что делает return false в этом случае ...

Формат для setInterval () равен

setInterval( CODE, DELAY);

с использованием анонимной функции с $.ajax() это:

setInterval( function() { $.ajax( ... ) }, 1000);

Кроме того, return false обычно используется для отмены поведения по умолчанию в jQuery .... здесь не применимо.

Если ваш ответ HTML, вы можете извлечь из него div с помощью find() или context .

Попробуйте что-то вроде этого:

<div id="div-hi"></div>
<div id="div-bye"></div>

<script type="text/javascript">
$(document).ready(function() { 
    setInterval(function() {
        $.ajax( 
        {
            url : 'test.php',
            type : 'post',
            success : function( resp ) 
            {
                  // Find the #hi and #bye divs in resp
                  //   and display them in #div-hi and #div-bye
                $('#div-hi').html($("#hi", resp).html());
                $('#div-bye').html($("#bye", resp).html());
            }
        });       
    } , 1000);
});  
</script>

Рабочая jsFiddle

(обратите внимание, как {} s появляются через несколько секунд)


Извлечение DIV со страницы:

Используйте функцию .load(), если вы просто хотите загрузить фрагменты другой страницы на текущую страницу.

Например, если вы используете index.php и хотите получить содержимое #hi и #bye из test.php и отобразить их в #div-hi и #div-bye

$('#div-hi').load('test.php #hi');
$('#div-bye').load('test.php #bye');

Выше приведено два вызова, но я просто хотел проиллюстрировать использование .load().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...