Php «продолжить» по щелчку

#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 вам придется различать два случая:

  1. Ваша страница, включая вашу кнопку и представление, отображается в первый раз
  2. Ваш AJAX-код получит список значений, который заменит старый список значений в представлении.

Таким образом, в итоге вы получите два URL-адреса:

  1. www.mywebpage.com/app/index.php -> Это обеспечит полную страницу
  2. 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 доставит какой-то мусор.