Использование файлов cookie или чего-либо еще для восстановления состояния выпадающего списка, который контролирует переменные PHP - PullRequest
0 голосов
/ 13 декабря 2011

Ладно, чтобы прояснить ситуацию, у меня действительно ограниченные знания php. Теперь я пытаюсь создать сценарий, который генерирует случайные видео на YouTube в зависимости от количества просмотров, страны и категории, например, здесь с использованием их API. Мне удалось получить рабочий выпадающий список, чтобы выбрать минимальное количество просмотров, которое должно быть показано на видео - оно работает довольно хорошо (в следующий раз я попытаюсь заставить другие два работать), но проблема в том, что я не знаю, как сделать выпадающий список сохраняет выбранное значение после обновления страницы. Эта функция очень важна, так как я хочу иметь возможность выбирать минимальное количество просмотров и хочу, чтобы он оставался на этом количестве, пока я не выберу одно из раскрывающихся списков. Я действительно не знаю, какой метод использовать, пожалуйста, помогите мне. Также я установил начальное значение $views равным 0 + $_REQUEST['views']., потому что позже оно является частью ссылки, поэтому оно должно быть числом. Вы думаете, если есть лучший метод решения этой проблемы? это ссылка на тестовый сайт, если вы хотите увидеть код ниже:

<body>
<?php 
$views = 0 + $_REQUEST['views'];
$countries = "ES-US";
$category = "Comedy"; ?>


<div id="viewsdropdown">

<p>
View videos with
  <form name="views" method="POST" action="random.php">
        <select name='views' onChange='document.views.submit()'>
             <option selected value='0'>0</option>
             <option  value='50'>50</option>
             <option  value='100'>100</option>
             <option  value='500'>500</option>
             <option  value='5000'>5,000</option>
             <option  value='35000'>35,000</option>
             <option  value='75000'>75,000</option>
             <option  value='125000'>125,000</option>
             <option  value='150000'>150,000</option>
             <option  value='250000'>250,000</option>
             <option  value='500000'>500,000</option>
             <option  value='1000000'>1,000,000</option>
             <option  value='3000000'>3,000,000</option>
             <option  value='5000000'>5,000,000</option>
             <option  value='10000000'>10,000,000</option>
             <option  value='15000000'>15,000,000</option>
             <option  value='20000000'>20,000,000</option>
    </select>
        </form>
  <p>views or more
  </p>

</div>

<div id="videocenter">
  <?php


$url = "http://flyhour.tv/bots/api/index.php?type=2&countries=".$countries."&category=".$category."&views=".$views;



$file = $url;



echo $file

?>
</div>

</body>
</html> 

отредактированный код:

<body>
<?php 
$views = (int) $_POST['views'];
$countries = "ES-US";
$category = "Comedy"; ?>
<div id="viewsdropdown">

<p>
View videos with
  <form name="views" method="POST" action="random.php">
        <select name='views' onChange='document.views.submit()'>
            <? $views_options = array (50, 100, 500, 5000, 35000, 75000, 125000, 150000, 250000, 500000, 1000000, 3000000, 5000000, 10000000, 15000000, 20000000);

foreach($views_options as $number_of_views) {
    echo '<option value="' . $number_of_views . '"' . ($_POST['views']==35000 ? ' selected="selected"' : '') . '>' . number_format($number_of_views) . '</option>';
}?>
    </select>
        </form>
  <p>views or more
  </p>

</div>

<div id="videocenter">
  <?php


$url = "http://flyhour.tv/bots/api/index.php?type=2&countries=".$countries."&category=".$category."&views=".$views;



$file = $url;

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

Для каждой строки «option» добавьте следующий скрипт PHP:

<option  value='35000'<?= $_POST['views']==35000 ? ' selected="selected" : '' ?>>35,000</option>

Еще лучше, вы можете изменить весь блок на что-то вроде этого:

$views_options = array (50, 100, 500, 5000, 35000, 75000, 125000);

foreach($views_options as $number_of_views) {
    echo '<option value="' . $number_of_views . '"' . ($_POST['views']==35000 ? ' selected="selected"' : '') . '>' . number_format($number_of_views) . '</option>';
}
0 голосов
/ 13 декабря 2011

Поскольку вы размещаете форму, значение для представлений всегда должно существовать в суперглобальном элементе $ _POST (или, как вы его используете, $ _REQUEST) ...

Так что вам нужно что-то вроде:

<?php
$views = (int) $_REQUEST['views'];
$countries = "ES-US";
$category = "Comedy"; 
?>

<div id="viewsdropdown">

<p>
View videos with
  <form name="views" method="POST" action="random.php">
        <select name='views' onChange='document.views.submit()'>
             <option value='0'<?php echo !$iViews ? " selected=\"selected\"" : ""; ?>>0</option>
             <option value='50'<?php echo $iViews > 49 && $iViews < 100 ? " selected=\"selected\"" : ""; ?>>50</option>
             <option value='100'<?php echo $iViews > 99 && $iViews < 500 ? " selected=\"selected\"" : ""; ?>>100</option>
             <option value='500'<?php echo $iViews > 499 && $iViews < 5000 ? " selected=\"selected\"" : ""; ?>>500</option>
             <option value='5000'<?php echo $iViews > 4999 && $iViews < 35000 ? " selected=\"selected\"" : ""; ?>>5,000</option>
             <option value='35000'<?php echo $iViews > 34999 && $iViews < 75000 ? " selected=\"selected\"" : ""; ?>>35,000</option>
             <option value='75000'<?php echo $iViews > 74999 && $iViews < 125000 ? " selected=\"selected\"" : ""; ?>>75,000</option>
             <option value='125000'<?php echo $iViews > 124999 && $iViews < 150000 ? " selected=\"selected\"" : ""; ?>>125,000</option>
             <option value='150000'<?php echo $iViews > 149999 && $iViews < 250000 ? " selected=\"selected\"" : ""; ?>>150,000</option>
             <option value='250000'<?php echo $iViews > 249999 && $iViews < 500000 ? " selected=\"selected\"" : ""; ?>>250,000</option>
             <option value='500000'<?php echo $iViews > 499999 && $iViews < 1000000 ? " selected=\"selected\"" : ""; ?>>500,000</option>
             <option value='1000000'<?php echo $iViews > 999999 && $iViews < 3000000 ? " selected=\"selected\"" : ""; ?>>1,000,000</option>
             <option value='3000000'<?php echo $iViews > 2999999 && $iViews < 5000000 ? " selected=\"selected\"" : ""; ?>>3,000,000</option>
             <option value='5000000'<?php echo $iViews > 4999999 && $iViews < 10000000 ? " selected=\"selected\"" : ""; ?>>5,000,000</option>
             <option value='10000000'<?php echo $iViews > 9999999 && $iViews < 15000000 ? " selected=\"selected\"" : ""; ?>>10,000,000</option>
             <option value='15000000'<?php echo $iViews > 14999999 && $iViews < 20000000 ? " selected=\"selected\"" : ""; ?>>15,000,000</option>
             <option value='20000000'<?php echo $iViews > 19999999 ? " selected=\"selected\"" : ""; ?>>20,000,000</option>
    </select>
</form>

// ... and so on ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...