Asp.net выпадающий список выбранного значения без viewstate Как PHP добиться этого - PullRequest
1 голос
/ 03 января 2012

Это просто вопрос, который возник из моего ниоткуда:

В PHP нет viewstate , но как эти парни могут сохранить country id во время postback/POST если выпадающий список привязан к источнику данных ниже

CountryId CountryName
1             USA
2             INDIA
3            ....

при условии, что отображаемым текстом является CountryName.

В ASP.NET во время обратной передачи выбранное значение выпадающего списка загружается из viewstate, так как источник данныхсохраняется в viewstate во время привязки данных.

  • Как PHP на самом деле достигает этого эффекта

  • Если во время публикации произошла ошибка (проверка и т. д.), asp.net снова загружает выпадающие значения из viewstate, поэтому ребята из PHP снова запрашивают БД для стран или загружают ее из кэша.

note: это простопростой пример, где можно дать предсказуемые ответы, я ищу более широкий ответ думать о других вещах, которые может содержать раскрывающийся список.

1 Ответ

1 голос
/ 03 января 2012

В PHP текущее значение любого / всех изменяемых элементов формы будет отправлено обратно на сервер и будет отображаться в глобальном $ _ POST .

ОБНОВЛЕНИЕ: пример:

<input type="text" name="my_text" value="some_value" ?>
<select name="my_select">
    <option value="option1"/>Option 1</option>
    <option value="option2" SELECTED/>Option 2</option>
</select>

В этом случае сервер получит:

$_POST['my_text'] = 'some_value';
$_POST['my_select'] = 'option2';

Согласно проверке: если вы не используете платформу, которая вводит проверкуPHP не знает разницы.Если вы хотите убедиться, что выбранное вами значение действительно является действительным, вам нужно дважды проверить его вручную по списку известных значений.

Опять же - существуют фреймворки, которые предоставляют большую помощь при проверке (среди прочего.Тем не менее, внутренняя концепция та же самая: сгенерировать список, создать выборку из него, сгенерировать список снова и убедиться, что значение POST действительно находится в списке.

...