У меня есть скрипт php, который позволяет пользователям выбирать определенные награды, когда они набирают определенное количество очков. Они выбирают вознаграждение, которое они хотели бы использовать select
выпадающее меню.
<select name="reward" id="reward">
<option value="null">No Reward, save my points.</option>
<option value="1" data-type="percent" data-value="10">Option 1: 10% off [10 points]</option>
<option value="2" data-type="money" data-value="500">Option 2: £5.00 off [15 points]</option>
<option value="4" data-type="money" data-value="1500">Option 3: £15.00 off [45 points]</option>
<option value="5" data-type="percent" data-value="98">Option 4: 98% off [500 points]</option>
</select>
Этот выпадающий список работает нормально, как и код, когда пользователь выбирает вознаграждение (т. Е. Значение выбора является числом), однако, когда они оставляют свой вариант вознаграждения как «Нет вознаграждение, сохранить мои очки.«У меня начинаются проблемы.
Если код PHP, оператор if с условным $_POST['reward'] != 'null'
сломает PHP, в результате чего он выйдет, оставив мне ошибку 500 в браузере и следующую ошибку в журналах ошибок:
(104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
Premature end of script headers: index.php
Когда я изменяю условие в операторе if на $_POST['reward'] == 'null'
Однако, код, кажется, работает нормально, без каких-либо ошибок.
Есть идеи?
Использование «ноль» в качестве одного из значений выбора приведет к путанице. Разве это не строка со значением ‘null’ (так как она может иметь значение ‘Lorem Ipsum …’ или ‘John Doe’), чем значение null.
Вместо этого используйте любое другое значение, и все будет легко и понятно. Например:
<select name="reward" id="reward">
<option value="0">No Reward, save my points.</option>
<option value="1" data-type="percent" data-value="10">Option 1: 10% off [10 points]</option>
<option value="2" data-type="money" data-value="500">Option 2: £5.00 off [15 points]</option>
<option value="4" data-type="money" data-value="1500">Option 3: £15.00 off [45 points]</option>
<option value="5" data-type="percent" data-value="98">Option 4: 98% off [500 points]</option>
</select>
И тогда из PHP вы можете проверить значение:
if ($_POST['reward'] != '0')
{
// your code here
}
Вы пытались использовать другое значение вместо «ноль»? Например :
<option value="0">No Reward, save my points.</option>