Jump to content
  • 0

Мультиселект и БД. Как занести в базу значения из мультиселекта, допустим через запятую или пробел


Mahay
 Share

Question

Начал разбираться с мультиселектом, понял принцип работы, нашел как реализовать, но столкнулся с проблемой. Проблема заключается в следующем: 
После выборки нужных нам <option> пытаюсь их отправить в созданную мною таблицу [table] в БД [multi] , но безрезультатно. (
Таблица содержит следующие ячейки: id(11) и select1 VARCHAR(255) 

 

SQL 

CREATE TABLE IF NOT EXISTS `table` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `select1` varchar(255) NOT NULL,  PRIMARY KEY (`id`));

PHP - index.php

<?php$db = mysql_connect ("localhost","12345","12345");mysql_select_db ("multi",$db);mysql_query('SET NAMES utf8');mysql_query('SET CHARACTER SET utf8');?><!doctype html><html lang="en"><head><!-- Encoding utf8--><meta charset="utf-8"><!-- Meta, title, CSS, favicons, etc. --><meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- disable iPhone inital scale --><meta name="viewport" content="width=device-width; initial-scale=1.0"><!-- Name site --><title>Мультиселект</title><!-- Description --><meta name="Description" content=""><!-- Keywords --><meta name="Keywords" content=""><style type="text/css">		.holder	{ width:200px; float:left; }		#add,#remove	{ display:block; width:100px; border:1px solid #ccc; background:#eee; padding:10px; }		select	{ margin:0 0 10px 0; width:150px; font:12px tahoma; padding:5px; height:300px; }		option	{ padding:10px; }</style><script type="text/javascript" src="jquery.js"></script><script type="text/javascript">$(function(){//========================================================================// Убираем пункты из главного списка		//----------------------------------------------	// Используя кнопки 	$('#remove').click(function() {		move_option('#select1','#select2');					});	//----------------------------------------------		//----------------------------------------------	// По двойному клику	$('#select1 option').live('dblclick',function(){		$(this).appendTo('#select2');	});	//----------------------------------------------//========================================================================//========================================================================// Добавляем пункты в первый список		//----------------------------------------------	// Используя кнопки 	$('#add').click(function() { 		move_option('#select2','#select1');	});	//----------------------------------------------		//----------------------------------------------	// По двойному клику 	$('#select2 option').live('dblclick',function(){		$(this).appendTo('#select1');	});	//----------------------------------------------//========================================================================//========================================================================// Считаем, что в главном списке находится перечень нужных нам материалов// При клике на submit выделяем все пункты в главном списке		$('#select_all').click(function(){		$('#select1 option').attr('selected', 'selected');	});//========================================================================});	function move_option(id_1, id_2){	$(id_1+' option:selected').each(function(el) { 	// у элемента id_1 собираем выбранные опции (option:selected) и на  каждую (each) из них вешанм ф-цию			  $(this).appendTo(id_2); // внутрь id_2 вставляем выбранные ранее опции	});}</script></head><body style="overflow-y: scroll;"><form action="" method="post"><div class="holder">	<select multiple="multiple" id="select1" name="select1[]"></select>	<a href="javascript:;" id="remove">>></a></div><div class="holder">	<select multiple="multiple" id="select2">	    <option value="1">Option 1</option>		<option value="2">Option 2</option>		<option value="3">Option 3</option>		<option value="4">Option 4</option>  		<option value="5">Option 5</option>        <option value="6">Option 6</option>	</select>	<a href="javascript:;" id="add"><<</a></div><input id="select_all" type="submit" name="submit333"/></form><!-- ОБРАБОТЧИК--><?phpif ($_REQUEST['submit333']) { print_r($_POST['select1']);//заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную//заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную// если такого нет, то сохраняем данные$result2 = mysql_query ("INSERT INTO `table` (select1) VALUES('$select1')");// Проверяем, есть ли ошибкиif ($result2=='TRUE'){echo "добавленно";}else {exit ("отказанно"); //останавливаем выполнение сценариев     }		 }	 ?>	   </body></html>

Ссылка на все файлы, архив: https://drive.google.com/file/d/0B0Udvr_35FCoTHFudTRlNnJLMEk/edit?usp=sharing

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

1. Мешать HTML, CSS, JS и PHP в одном файте — очень дурной тон.

2. Что выдаёт print_r для $_POST['select1']?

 

1. Прошу прощения, знаю, пытаюсь просто разобраться

2. Array ( [0] => 1 [1] => 2 )  при выборе option1 и option2

1. Мешать HTML, CSS, JS и PHP в одном файте — очень дурной тон.

2. Что выдаёт print_r для $_POST['select1']?

 

Хочу понять как допустим занести значения из селекта через запятую, допустим при выборе option1 и option2 в базу бы занеслось 1, 2

Link to comment
Share on other sites

  • 0
implode(', ', $_POST['select1'])
<?phpif ($_REQUEST['submit333']) {implode(', ', $_POST['select1']);//заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную//заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную// если такого нет, то сохраняем данные$result2 = mysql_query ("INSERT INTO `table` (select1) VALUES('$select1')");// Проверяем, есть ли ошибкиif ($result2=='TRUE'){echo "добавленно";}else {exit ("отказанно"); //останавливаем выполнение сценариев     }		 }	 ?>

строка создается в базе но ячейка пустая 

Link to comment
Share on other sites

  • 0
. Прошу прощения, знаю, пытаюсь просто разобраться

жесть.

Код должен быть поделен минимум на две части. шаблон и php код. Лучше на три. контроллер, модель, шаблон

Но я по другому делаю. Весь код расскидываю на классы и из нужного места шаблона вызываю нужную функцию нужного класса.

 

 

в упор невижу переменной $select1, там есть $_POST['select1']

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Similar Content

    • By Лелик
      Источник для импорта сменил кодировку с utf-8 на  windows-1251. Всвязи с этим не выполняются циклы импорта, ошибка 1064 и кириллица выводится в квадратах. Также вверху шапки сайта при загрузке страницы админки с импортом и при оформлении заказа (на другой линии) [Unknown: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/p10824/xn--80agbgp3aafdnsm0c.xn--p1ai/system/library/partner.php on line 44 ]  Нужно адаптировать код по примеру [$q = 'select id, fio from `users`';
      $res = mysql_query($q);
      while (($row = mysql_fetch_assoc($res)) !== false) {
      // Преобразуем fio из utf-8/latin1 в windows-1251
      $s = iconv('utf-8', 'windows-1251', $row['fio']);
      // Преобразуем строку из однобайтной кодировки обратно в utf-8, выдав её за windows-1251
      $s = iconv('windows-1251', 'utf-8', $s);
      // Сохраняем назад в БД
      $q = 'update `users` set fio = "'.addslashes($s).'" where id = '.$row['id'];
      mysql_query($q);
      }]. Файл для работы прилагаю
      partner.php
    • By Only091
      Помогите пожалуйста, не получается сделать постраничную навигацию. Делал все по урокам. в Итоге получилось сделать два разных каталога один с фильтрами другой с постраничной навигацией. И теперь я пытаюсь объединить два каталога. Но не получается. Сами файлы урока в архике каталог. Буду очень благодарен если мне помогут! catalog.phpcatalogDB.js
      каталог.7z
    • By stonelabs
      Всем привет!

      Наша компания (https://stone-labs.com/) ищет команды (!) разработчиков для реализации ряда заказных проектов. Местоположение не важно - мы практикуем удаленную работу.
       
      Обязательные требования:
      Laravel или Symfony frameworks jQuery (UI), JavaScript, Ajax, Bootstrap MySQL REST API, опыт внедрения Third-party APIs английский на уровне чтения и понимания технической документации опыт в разработке веб приложений и их архитектуры с нуля корректное использование git & pull request flow работа в дневное время во временной зоне UTC +3  
      Будет плюсом, если у вашей команды есть:
      опыт с GitLab CI/CD, Jenkins опыт с MySQL Cluster, MongoDB, PostgreSQL, Redis опыт с Vue.js опыт Linux администрирования, SSH, Nginx, DevOps  
      Если вам интересно сотрудничество, пожалуйста, пишите на наш ящик wanted@stone-labs.com 
    • By Defroing
      <form method="POST" action= "action_handler.php" id="form"> <section class="table_1"> <table class="iksweb"> <tbody> <tr> <td rowspan="3"><b>История компании «Mc donald's»</b> <h3 class="the">Кто основал компанию «Mc donald's»?</h3> <section class="conteiner"> <div class="checkbox"> <input type="checkbox" class="i-6" id="i6" value="0" name="formDoor[]"> <label for="i6" tabindex="12">Роналд Макдоналд</label> </div> <div class="checkbox"> <input type="checkbox" class="i-6" id="i7" value="0" name="formDoor[]"> <label for="i7" tabindex="13">Рэй Крок</label> </div> <div class="checkbox"> <input type="checkbox" class="i-6" id="checkbox_68" value="1" name="formDoor[]"> <label for="checkbox_68" tabindex="14">Братья Дик и Мак Макдоналд</label> </div> <div class="checkbox"> <input type="checkbox" class="i-6" id="checkbox_170" value="0" name="formDoor[]"> <label for="checkbox_170" tabindex="14">Клинт Иствуд</label> </div> <div class="out-block out-6"></div> </section> </td> </tr> </tbody> </table> <div class="dsw"> <button class="b-6" tabindex="11" id="btn-1" type="submit" name="formSubmit">Отправить</button> </div> </form> <?php mysql_connect("localhost", "root", ""); mysql_select_db('olala') or die(mysql_error()); if(isset($_GET['submit'])){ $arr=$_GET; foreach ($arr as $key => $value) { $reg="/^check/";//отбираю нужные элементы if( preg_match ($reg,$key )) { //$new_mass[]=$arr[$key]; //print_r($new_mass); echo $arr[$key]; $sql_1="INSERT INTO `table_one` (`name`) VALUES('$arr[$key]')"; mysql_query($sql_1) or die(mysql_error()); } } } ?>  Создаю опросник и хочу, чтобы чекбоксы заносились в БД(таблицу пока не создавал). Хотелось узнать на счёт php кода, сможете подсказать, что в нём не так (дать какие нибудь советы). В openserver опросник пока не выкладывал.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy