Я посещаю множество разных сайтов, чтобы получить список информации, и я хочу отображать эту информацию по мере ее получения. Прямо сейчас я использую шаблон Smarty, и я хотел бы сделать следующее:
Псевдокод:
{foreach $page}
$smarty_var = use AJAX to call a PHP function
Render out a new table row on the fly w/ the newly assigned var
<tr><td>{$smarty_var}</td></tr>
{/foreach}
Я не очень разбираюсь в AJAX, я использовал его давным-давно, и это было похоже на это, но не совсем, было предпринято действие пользователя. Нет, у меня нет JS Framework. Я далеко здесь о том, как это должно идти? В основном я хочу отображать строку таблицы по мере поступления данных, каждая строка таблицы будет запросом на получение данных с другого сайта.
Конечно, я расскажу вам о том, что я пытаюсь сделать: http://bookscouter.com/prices.php?isbn=0132184745+&x=19&y=6 Если вы нажмете «Нажмите, чтобы просмотреть цены по всем 43 ссылкам» внизу этой страницы, вы увидите. Я использую cURL, чтобы получить все страницы, с которых мне нужна цена. Затем для каждой страницы я хочу получить цену. Таким образом, каждая страница будет запускать функцию, которая запускает какой-нибудь забавный код, например:
function parseTBDOTpageNew($page, $isbn)
{
$first_cut = preg_split('/<table[^>]*>/', $page);
$second_cut = preg_split('/<td[^>]*>/', $first_cut[2]);
if(strstr($second_cut[4], "not currently buying this book") == true)
{
return "\$0.00";
}
$third_cut = preg_split('/<b[^>]*>/', $second_cut[9]);
$last_cut = preg_split('/</', $third_cut[3]);
return $last_cut[0];
}
Эта функция вызывается из другой функции, которая помещает цену, возвращенную вышеприведенной функцией, название компании и ссылку в массив, который будет добавлен к другому массиву большего размера, который отправляется в smarty. Вместо этого я просто хочу получить первый возвращаемый массив с индивидуальной информацией и добавить значения в строку таблицы на лету.
Я воспользуюсь вашим советом по Jquery, то, что я начал, - это функция загрузки, которая получает $pages для анализа, и я как раз писал: foreach page получает информацию и выплевывает некоторый html с информацией на страница.
Кроме того, функция, которая вызывает функцию для получения цены, находится в php-файле, поэтому мне нужен запрос на вызов функции в php-файле, а НЕ просто вызов file.php?param1=foo, мне нужно, чтобы он действительно попал в функция в файле. У меня есть Jquery, теперь я просто пытаюсь понять это и заставить его делать то, что мне нужно, тьфу. Я ищу, любая помощь будет оценена.