2015-02-25 3 views
0

Я пытаюсь создать страницу, которая сообщает мне, на какой странице результатов поиска youtube мое видео занимает место. Я использую AJAX.JQuery: ajax loop

У меня есть это в моей PHP странице

<?php 
$search_term = "Search Term"; 
$page_link = "rbdSxr9Vvw0"; //this is the youtube video id 
$search_term = str_replace(" ","+",$search_term); 
$youtube_search = "http://www.youtube.com/results?search_query=".$search_term."&"; 
$i = $_POST['i']; 
if(strpos(file_get_contents($youtube_search."page=$i"),$page_link) == false){ 
echo "not found"; 
}else{ 
echo "found"; 
} 
?> 

Мне нужно написать функцию JQuery, который будет отправлять номера начиная с 1 на страницу PHP. Он должен показать текущую страницу, которую он проверяет, и результат. Он должен остановиться, когда результат говорит «найден». Заранее спасибо.

EDIT:

Я закончил с использованием этого кода:

В моей HTML страницы:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="utf-8"/> 
<script type = "text/javascript" src = "../jquery.js"></script> 
</head> 
<body> 
<script type = "text/javascript"> 
function checkPage(i){ 
    console.log("checking page", i); 
    $.ajax({ 
     url: "ajax.php", 
     data: {page: i}, 
     success: function(data){ 
      if(data != "found"){ 
       $('#div').text("not found at "+i);; 
       checkPage(i+1); 
      } 
      else { 
       alert("found at page "+i); 
      } 
     } 
    }); 
} 

checkPage(1); 
</script> 

</body> 
<div id = "div"></div> 
</html> 

В моей странице АЯКС:

<?php 
$search_term = "search term"; 
$page_link = "ZXsdlk0_HuQ"; //this is the youtube video id 
$search_term = str_replace(" ","+",$search_term); 
$youtube_search = "http://www.youtube.com/results?search_query=".$search_term."&"; 
$result = "false"; 
$i = $_GET['page']; 
if(strpos(file_get_contents($youtube_search."page=$i"),$page_link) == false){ 
echo "not found"; 
}else{ 
echo "found"; 
} 
?> 
+0

Вы пробовали что-то для клиента? Похоже, вам просто нужен очень простой $ .ajax. – briosheje

+0

@briosheje Я пробовал использовать цикл while. оно работает. Но он не показывает текущую страницу, которую он проверяет. Он продолжается до тех пор, пока видео не будет найдено, а затем покажет результат. – user1763032

ответ

1

Вы могли бы сделайте что-нибудь подобное. Вам нужно будет получить «страницу» на вашем PHP, но это сработает.

function checkPage(i){ 
    console.log("checking page", i); 
    $.ajax({ 
     url: "myPHPPageURL", 
     data: {page: i}, 
     success: function(data){ 
      if(data != "found"){ 
       checkPage(i+1); 
      } 
      else { 
       alert("found at page "+i); 
      } 
     } 
    }); 
} 

checkPage(1); 
+0

Спасибо! Оно работает. Я внес некоторые изменения, и это работает потрясающе! – user1763032

1
var loop_end = SMTH; 

for (var i = 0; i < loop_end; i++) { 
    $.ajax({ 
    url: '/path/to/script.php', 
    type: "POST", 
    data: {i: i}, 
    success: function (data) { 
    } 
    }); 
}