#php #jquery
#php #jquery
Вопрос:
У меня есть некоторые значения в массиве. Во-первых, я хочу показать свои первые два значения этого массива в моем представлении, а затем я хочу показать оставшиеся значения после определенного действия нажатия кнопки с увеличением индекса массива на 1. например: один щелчок показывает 3-е значение, затем другой щелчок показывает 4-е.
Как я могу этого добиться??
$array=[1,2,3,4,5,6,7,8,9];
foreach($array as $a)
{
if($a>2)
continue;
echo $a.'<br/>';
}
впервые я хочу, чтобы представление выглядело как
1
2
и после этого после нажатия кнопки мне нужно показать
3, затем 4, затем 5 . . .
Комментарии:
1. PHP всегда запускается перед jQuery на какой-либо конкретной странице; другими словами, PHP не запускается в браузере. Вам нужно думать в терминах запросов / ответов AJAX.
2. да, я справлюсь с этим с помощью ajax-запроса.. мне просто нужна помощь для обработки данных массива.
3. Какая помощь? Используйте
$.ajax()
, и все просто.4. я отредактировал qns, пожалуйста, помогите мне
Ответ №1:
Это не так, как работает PHP.
На сервере запускается PHP-скрипт для создания вашей веб-страницы. Как только вы получите его, вам нужно будет перестроить свою страницу в соответствии с новыми параметрами (полученными с помощью GET или POST), повторно запросив сервер.
Это будет выглядеть так:
<?php
$array=array(1,2,3,4,5,6,7,8,9); //That is how you declare an array in PHP
if(empty($_GET["count"])){ //It's the first time on the page, show the first two elements
echo $array[0] . ' ' . $array[1];
echo '<br><a href="page.php?count=1">Next</a>'; //Send to the same page, but now send the count by GET
}
else{ //It's not the first time on the page, keep track of how many times the link was clicked
$count = $_GET["count"];
echo $array[$count] . ' ' . $array[$count 1];
$count ;
echo '<br><a href="page.php?count=' . $count . '">Next</a>';
}
?>
Но вы не должны делать подобные вещи. Если вы хотите взаимодействовать с пользователем, динамически изменяя свою страницу после ее создания, вам нужно искать Javascript.
Комментарии:
1. Не забудьте проверить конец массива, код, который я добавил, является лишь примером, вам нужно будет подумать.
Ответ №2:
Поскольку Джек и ты НЕ упоминали о РАБОТЕ, вы можете использовать AJAX.
С Ajax вам придется различать два случая:
- Ваша страница, включая вашу кнопку и представление, отображается в первый раз
- Ваш AJAX-код получит список значений, который заменит старый список значений в представлении.
Таким образом, в итоге вы получите два URL-адреса:
- www.mywebpage.com/app/index.php -> Это обеспечит полную страницу
- www.mywebpage.com/app/index.php?action=getNewValuesamp;start=3amp;to=7 -> Это будет рассматриваться как вызов AJAX и доставит, возможно, JSON со значениями от 3 до 7.
Теперь вы знаете, как организовать свой обработчик команд PHP. Что-то вроде
...
$action = $GET['action'];
...
if ($action == 'getNewValues') {
...
...
echo $resultJson;
exit;
} else if ... {
...
} else {
$myPageRenderer->renderFullPage();
}
Вы найдете много объяснений для jQuery.ajax()
-вызовов, просто продолжайте 🙂 Вот хорошее начало
http://api.jquery.com/jQuery.ajax /
Не забудьте отключить кнопку «Далее», когда вы находитесь в конце списка, и наоборот.
Существует второй подход, а именно получить полный список значений при первом отображении страницы. Затем нажатие кнопки javascript просто выберет новое значение из существующего списка.
Поэтому вы можете писать с помощью PHP в головной части HTML:
<script type=text/javascript>
myDataIsland = {
myListOfValues : <?php echo $myList; ?>
};
</script>
Таким образом, вы получите свой список на своей странице в первую очередь. Имея все доступные значения, код события Javascript может просто выбрать следующие значения.
Здесь хороший подход заключается в том, чтобы сначала написать строку, представляющую JSON, а $(document).ready()
затем отобразить список JSON в объект JSON. Таким образом, ваша страница не будет аварийно завершаться, если PHP доставит какой-то мусор.