Вставить список выбранных опций в базу данных НЕ значения - PullRequest
0 голосов
/ 24 октября 2011

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

Я использовалокно со списком для этого

<select name="subject" id="select2"> ***(value=fees for the subject)
<option value="100">Arts</option>
<option value="150">English</option>

расчет в порядке со значениями, которые даны (для этого я использовал вычисление javascript) Теперь я хочу вставить тему в базу данных, например:

INSERT INTO user(name, email, subject)
VALUES ('$_POST[name]','$_POST[email]','$_POST[subject]')");

Я хочу добавить тему, выбранную для добавления в поле темы базы данных, как английский, а не сборы.

Надеюсь, вы понимаете, о чем я говорю. Пожалуйста, помогите

Спасибо

Ответы [ 4 ]

0 голосов
/ 24 октября 2011

Вы должны добавить дескриптор onsubmit событие формы и скрытое поле для сохранения выбранного text элемента списка.

<script type="text/javascript">
function submitIt()
 {
  var list=document.getElementById("select2");
  var item=list.item(list.selectedIndex);
  document.getElementById("subjectTest").value=item.text;
  return true;
}
</script>

<form method="post" action="your_page.php" onsubmit="return submitIt()">
   <input type="hidden" id="subjectTest" name="subjectText" />
   <select name="subject" id="select2"> ***(value=fees for the subject)
    <option value="100">Arts</option>
    <option value="150">English</option>
   <input type="submit" name="cmd" value="Submit"/>
</form>
0 голосов
/ 24 октября 2011

В php, когда вы заполняете свой список, сохраняйте на карте значение => отображение метки и возвращайте правильное значение, например:

$arr = array(100 => "Arts", 150 => "English");
echo $arr[$_POST[subject]]; //if $_POST[subject]==100, return "Arts"

В противном случае, в javascript вы можете получить его с помощью

var index=document.getElementById("select2").selectedIndex;
document.getElementById("select2").options[index].text; 

Затем вы можете сохранить его в скрытом тексте ввода ...

Предупреждение: Не вставляйте непосредственно значения в запросе sql! Будьте осторожны с SQL-инъекцией

Надеюсь, это поможет вам ...

0 голосов
/ 24 октября 2011

В идеале вы должны использовать метки в качестве значений, таких как:

<select name="subject">
<option value="Arts">Arts</option>
<option value="English">English</option>

Если по какой-либо причине вы хотите разместить как ярлык, так и плату, вы можете использовать скрытые переменные и JavaScript, например:

<select name="subject_fee" id="subject_fee" onchange="populate_subject_name();">
<option value="100">Arts</option>
<option value="150">English</option>
</select>
<input type="hidden" name="subject_name" id="subject_name" value="">
<script type="text/javascript">
    function populate_subject_name() {
        var f = document.getElementById("subject_fee");
        var n = document.getElementById("subject_name");
        n.value = f.options[f.selectedIndex].text;
    }
</script>

Кстати, я бы по-прежнему рекомендовал первый подход. Есть и другие способы расчета комиссии - просто импровизировать. См. это и это для одной возможности.

0 голосов
/ 24 октября 2011

Для этого потребуется, чтобы серверная часть знала текст элемента SELECT, так как обратно отправляется только выбранное значение.

Это возможно в ASP.NET, так как элемент SELECT известен на стороне сервера. Однако я не уверен, если это в случае с PHP.

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