Я нахожусь на множестве разных сайтов, чтобы получить список информации, и я хочу отобразить эту информацию по мере ее получения. Сейчас я использую Smarty шаблон и то, что я хотел бы сделать, это:Вызов функции PHP из Smarty с AJAX без действия пользователя
Псевдо код:
{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, то, что я начал, является функцией onload, которая получает анализируемые страницы $, и я был только посреди написания: для каждой страницы вы можете получить информацию и наплевать некоторый html w/информацию на странице.
Также функция, вызывающая функцию для получения цены, находится в php-файле, поэтому мне нужен запрос, чтобы попасть в функцию в php-файл, а НЕ просто вызвать file.php? Param1 = foo, мне нужно это для фактического попадания функции в файл. У меня есть Jquery на месте, теперь просто пытаюсь понять это и заставить его делать то, что мне нужно, тьфу. Я ищу, любая помощь будет оценена.
NOte edit Я только что сделал. – KacieHouser
Я хочу, чтобы он загружался, когда я их получаю, я запрашиваю более 40 сайтов, поэтому, если я не буду идти вперед и загружать страницу и отображать их по мере их получения, для загрузки страницы требуется 30 или 40 секунд , – KacieHouser
+1 для jQuery :) –