Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы Как отправить в бд текст с checkbox

Как отправить в бд текст с checkbox


     19.04.2014    Общие вопросы    1501

вопрос
Здравствуйте все. Помогите пожалуйста, как при выборе несколько чекбоксов отправить значения в бд?

Вот такой запрос в бд:
ALTER TABLE `dle_users` ADD `addpolereg` VARCHAR( 30 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL;


далее этапы которые в register.php делаются. описано тут http://4dle.ru/hacks/1147157405-novoe-objazatelnoe-pole-pri-registracii.html

И в register.tpl вставляется код, для списка
<tr>
<td height="25">Версия Фотошопа:</td>
<td colspan="2"><select name="addpolereg" id="addpolereg" value="{addpolereg}">
<option value="Adobe Photoshop 11 (CS 4)">Adobe Photoshop 11 (CS 4)</option>
<option value="Adobe Photoshop 10 (CS 3)">Adobe Photoshop 10 (CS 3)</option>
<option value="Adobe Photoshop 9 (CS 2)">Adobe Photoshop 9 (CS 2)</option>
<option value="Adobe Photoshop 8 (CS)">Adobe Photoshop 8 (CS)</option>
<option value="Adobe Photoshop 7">Adobe Photoshop 7</option>
</td>
</tr>

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

Ответил: coderlaba


<select name="addpolereg[]" id="addpolereg" multiple="multiple">
if( !count( $_POST['addpolereg'] ) ) {
$addpolereg = array ();
$addpolereg[] = '0';
} else
$addpolereg = $_POST['addpolereg'];

$addpolereg_list = array();

foreach ( $addpolereg as $value ) {
$addpolereg_list[] = intval($value);
}

$addpolereg_list = $db->safesql( implode( ',', $addpolereg_list ) );
$db->query("UPDATE " . USERPREFIX . "_users SET addpolereg='{$addpolereg_list}' WHERE user_id = '{$id}'");

Комментарии пользователей (4)

vitnet
218

2171 | 930

vitnet - 20 апреля 2014 13:47 - Эксперт

как при выборе несколько чекбоксов отправить значения в бд?

<input type="checkbox" name="myname" id="myname" value="1" checked="checked" />&nbsp;<label for="myname">My name</label>

$myname = intval( $_POST['myname'] ); // 1 : 0

Gameer
224

1118 | 394

Gameer - 20 апреля 2014 14:03 - Эксперт

vitnet, спасибо, я это знаю. Просто хочу узнать как по тому коду, используя типа
<select name="addpolereg" id="addpolereg" value="{addpolereg}">
<option value="Adobe Photoshop 11 (CS 4)">Adobe Photoshop 11 (CS 4)</option>
<option value="Adobe Photoshop 10 (CS 3)">Adobe Photoshop 10 (CS 3)</option>

только для чексбоксов, типа использовать тег
name="addpolereg" id="addpolereg" value="{addpolereg}"
что бы можно отправить в бд и оно выводилось, никак понять не могу...

Истина в противоречии.​

Дмитрий
15

Дмитрий - 14 августа 2016 14:20 - Юзер

А как это оформить применительно к доп.полям на примере ajax/editnews.php ? С таким кодом

        } elseif ($value[3] == "checkbox") {
            $optional = ( $value[5] == "1" ) ? $lang['xf_not_notig'] : $lang['xf_notig'];
            $xfbuffer .= "<div class=\"xfieldsrow\"><div class=\"xfieldscolleft\">{$value[1]}:</div><div class=\"xfieldscolright\"><select name=\"xfield[{$fieldname}][]\" id=\"xf_{$fieldname}[]\" data-placeholder=\"Выберите {$value[1]} ...\" class=\"wide\" onchange=\"onCategoryChange(this)\" style=\"width:350px;height:140px;\" multiple=\"multiple\"><option value=\"\"></option>";
            
            if ( ! isset( $fieldvalue ) ) $fieldvalue = array();
            $fieldvalue = explode(";", str_replace( array('&amp;','&quot;'), array('&','"'), $fieldvalue ));
            $items = explode( "\r\n", $value[4] );
            foreach ( explode("\r\n", $value[4]) as $index => $value ) {
                $value = str_replace("'", "&#039;", $value);
              
              $xfbuffer .= "<option name=\"xfield[{$fieldname}][]\" value=\"{$value}\"" . (in_array($value, $fieldvalue) ? " selected" : "") . ">{$value}</option>\r\n";
            }

            $xfbuffer .= "</select></div></div>";

Дмитрий
15

Дмитрий - 14 августа 2016 14:23 - Юзер

По своей сути ответ CODERLABA основан на коде внесения изменений при выборе нескольких категорий - catlist. По сути рабочий пример, но что-то у меня его адаптировать в ajax/editnews.php применительно к доп.полям multiple не удается.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы