установить значение $ _POST, когда выбран переключатель

0

У меня есть страница с некоторыми переключателями и формой. Когда я выбираю один переключатель, мне нужно, чтобы его идентификатор был установлен в переменную $ _POST ['id'], поэтому, когда я отправляю форму, я могу проверить, какой переключатель был выбран и действовать соответствующим образом. Я знаю, что я не могу сделать это напрямую, поэтому попробовал использовать

onclick="document.getElementById("id").value="'.$row['id'].'"

на переключателе, но это не сработало.

$d="select * from {$_c['dbprefix']}card where active='1' order by s_sent desc, s_order asc limit 0,{$_c['filtr']['step']}";
$r=mysql_query($d);
if (mysql_num_rows($r)>0) {

echo '<div class="cards">';
echo '<form method="POST">';
$i=0;
while ($row=mysql_fetch_array($r)):

echo '<div class="item">';
echo '<input id="'.$row['id'].'" type="radio" name="id" class="detail">'.$_l['detailtitle'].'</input>';
echo '<label for="'.$row['id'].'" class="itemin" style="height:'.$_c['card']['sy'].'px"><img src="pub/cards/'.$row['id'].'s.jpg" /></lable>';
echo '</div>';

$i++;
if ($i%3==0) echo '<div class="cl-left"></div>';

endwhile;

echo '<div class="cl-left"></div>';
echo '</div>';
    }
?>



<div class="dvasl">

<div class="sl1">

<fieldset>
<legend>Saatja andmed</legend>
<table class="info">
<colgroup><col width="12%"><col></colgroup>
<tr>
<th>Nimi:</th>
<td><input type="text" name="item[from_name]" value="<?php echo $ap['set']['from_name']; ?>" class="inpedit"></td>
</tr>
<tr>
<th>Email:</th>
<td><input type="text" name="item[from_email]" value="<?php echo $ap['set']['from_email']; ?>" class="inpedit"></td>
</tr>
</table>
</fieldset>

<fieldset>
<legend>Saaja andmed</legend>
<table class="info">
<colgroup><col width="12%"><col></colgroup>
<tr>
<th>Nimi:</th>
<td><input type="text" name="item[to_name]" value="<?php echo $ap['set']['to_name']; ?>" class="inpedit"></td>
</tr>
<tr>
<th>Email:</th>
<td><input type="text" name="item[to_email]" value="<?php echo $ap['set']['to_email']; ?>" class="inpedit"></td>
</tr>
</table>
</fieldset>

</div>
<div class="sl2">

<fieldset>
<legend>E-kaardi tekst</legend>
<table class="info">
<tr>
<td><textarea name="item[text]" cols="20" rows="8" class="inpedit2"></textarea></td>
</tr>
</table>
</fieldset>

</div>

<div class="cl-left"></div>
</div>

<div class="buttons">
<div class="t2"><input type="submit" value="Vaata kaardi eelvaadet" name="button[nahled]" class="unbutt1"></div>
</div>

<input type="hidden" name="id" value="<?php echo $ap['card']['id']; ?>">
<input type="hidden" name="action" value="itemadd">
</form>

<?php
$k=floor(($i-1)/3);
if ($k<2) echo '<div class="spacer-'.(2-$k).'"></div>';

?>
  • 1
    Вот и все, используйте атрибут имени для кнопки.
  • 0
    что ты имеешь ввиду?
Показать ещё 1 комментарий
Теги:

4 ответа

1
Лучший ответ

Лучше, если вы можете использовать скрытое поле в форме и обновить его значение с идентификатором выбранного переключателя, и когда форма будет опубликована, вы сможете получить ее значение и многое другое после того, как вы измените значение скрытого поля вы можете получить к нему доступ с помощью javascript также с идентификатором и можете получить его в сообщении по атрибуту name

добавьте скрытое поле с именем

<input type="hidden" id="checked_radio" name="checked_radio" value="" />

а затем измените значение с помощью javascript при нажатии кнопки

<input type="radio" id="foo" name="foo" onclick="document.getElementById('checked_radio').value=this.value;" />
  • 0
    хороший ответ. это то, что я говорю в комментарии @martinv
  • 0
    Рад помочь вам martinv, вы можете получить значение в сообщении через $ _POST ['checked_radio']. Вы также можете передать строку через запятую также в скрытом виде, если вы хотите передать несколько вещей или идентификаторов одновременно. Спасибо за поддержку Rishabh.
Показать ещё 1 комментарий
1

Значение выбранного переключателя отправляется, и name используется для группировки переключателей. (Можно выбрать только одну радиокнопку с указанным name.) Вместо того, чтобы публиковать значение атрибута id вы должны добавить атрибут value и установить его. Вы можете установить его на то же значение, что и атрибут id, или полностью удалить атрибут id.

0

Когда я выбираю один переключатель, мне нужно, чтобы его идентификатор был установлен в переменную $_POST['id']

Вы меняете значение, а не идентификатор, чтобы изменить использование идентификатора:

onclick="document.getElementById("id").id="<?php echo $row['id'] ?>";

В любом случае, я думаю, вы должны использовать атрибут name для этого.

0

изменить эту строку

echo '<input id="'.$row['id'].'" type="radio" name="id" class="detail">'.$_l['detailtitle'].'</input>';

в

echo '<input id="'.$row['id'].'" type="radio" value="'.$row['id'].'" name="id" class="detail">'.$_l['detailtitle'].'</input>';

когда ваша форма будет отправлена, вы получите выбранный идентификатор как $_POST['id']

Ещё вопросы

Сообщество Overcoder
Наверх
Меню