Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Keven Jesus_164006

[Resolvido] select multiple - DADOS BANCO DE DADOS

Recommended Posts

Pessoal,

 

tenho um multiple

assim

 

<select name="conhecimento_informatica" size=30 multiple="multiple">
           <optgroup label="Aplicações de Escritório">
       	<option>MICROSOFT ACCESS</option>
           <option>MICROSOFT EXCEL</option>
           <option>MICROSOFT WORD</option>
           <option>MICROSOFT POWER POINT</option>
           <option>MICROSOFT OUTLOOK</option>
           <option>LIBRE OFFICE</option>
           <option>LOTUS NOTES</option>
           <option>OPEN OFFICE</option>
           <option>STAR OFFICE</option>
           <optgroup label="Sistema Operacionais">
           <option>WINDOWS</option>
           <option>UNIX</option>
           <option>MAC OS</option>
           <option>LINUX</option>
           <option>UMS</option>
           <option>JAVA OS</option>
           <option>NT 4.0</option>
           <option>SOLARIS</option>
           <option>NET BSD</option>
           <option>IBM OS</option>
           <option>FREE BSD</option>
           <option>SOLARIS</option>
           <optgroup label="Programação">
           <option>ASP</option>
           <option>ASP.NET</option>
           <option>C</option>
           <option>C#</option>
           <option>C+</option>
           <option>C++</option>
           <option>COBOL</option>
           <option>CSS</option>
           <option>CUDA EXTENSIONS</option>
           <option>DOT NET</option>
           <option>ERLANG</option>
           <option>HTML</option>
           <option>JAVA</option>
           <option>JAVA SCRIPT</option>
           <option>JQUERY</option>
           <option>MATLAB</option>
           <option>PHP</option>
           <option>PHYTON</option>
           <option>RUBY</option>
           <option>VISUAL BASIC</option>
           <option>VB.NET</option>
           <optgroup label="Gráficos / Web">
           <option>3DS MAX</option>
           <option>ADOBE ILUSTRATOR</option>
           <option>ADOBE PHOTOSHOP</option>
           <option>ADOBE DREAMWEAVER</option>
           <option>ADOBE FIREWORKS</option>
           <option>ADOBE FLASH</option>
           <option>PIXIA</option>
           <option>PAINT SHOP PRO</option>
           <option>BLENDER</option>
           <option>COREL DRAW</option>
           <option>EXPRESSION WEB</option>
           <option>GIMP</option>
           <option>INKSCAPE</option>
           <optgroup label="Outros Programas">
           <option>AUTO CAD</option>
           <option>CRM</option>
           <option>EDIÇÃO DE ÁUDIO</option>
           <option>EDIÇÃO DE VIDEO</option>
           <option>ERP</option>
           <option>MICROSOFT PROJECT</option>
           <option>SAP</option>
           <option>SELENIUM</option>
           <option>SERVIDOR DE E-MAIL</option>
           <option>SERVIDOR PROXY</option>
           <option>SERVIDOR WEB</option>
           <option>SOFTWARE DE CONTABILIDADE</option>
       </select>

 

meu problema eo seguinte no banco de dados ele só grava minha ultima marcação.

 

exemplo seu eu marca na sequencia ASP,ASP.NET,PHP no db ele só me grava o php :S

 

alguem sabe pq?

Compartilhar este post


Link para o post
Compartilhar em outros sites

<option>SOFTWARE DE CONTABILIDADE</option>

 

Você deve colocar um value em todos com o nome assim:

<option value="SOFTWARE DE CONTABILIDADE">SOFTWARE DE CONTABILIDADE</option>

Compartilhar este post


Link para o post
Compartilhar em outros sites

é pq um valor ta subescrevendo o outro na variavel

voce tem que fazer um array.

 

tipo

no html

<select name="conhecimento_informatica[]" size=30 multiple="multiple">

 

 

desse jeito ele pega os valores

$cursos[] = $_POST['conhecimento_informatica[]']

 

agora nao sei como você vai disponibiliza-los no banco de dados

 

se for em uma so string

seria

 

 

for( $i = 0; $i<= count($cursos); $i++){

$curso .= cursos[$i] . "-";

}

echo $curso;

 

terminei com um echo,

mas é claro você pode fazer com INSERT.

coloquei um separador pensando se você for exibir em uma pagina é so dar um

explode("-", $curso);

ai você monta um array e faz a disponibilidade na tua pagina

 

espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente algo do tipo:

 

$contador = count($cursos);
for( $i = 0; $i<= $contador; $i++){

$curso .= $cursos[$i] . "-";

}

echo $curso;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então coloquei o [] no select lá

 

e apliquei no POST tbm

 

esse for ta dando um erro que nao sei oque é

9CFwo.png

tu esqueceu de colocar o

$

da variavel $conhecimento_informatica[]

e o detalhe, usa

 

$cursos .= $conhecimento_informatica[$i];

desse jeito que você colocou você perde a variavel. e vai so com o primeiro curso de novo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim verdade , mas agora usando seu codigo Marcos. ele ainda continua a grava somente os tracinhos.

 

aqui deu certo '-'

mas tambem eu to usando o checkbox e nao o select multiple

acredite, o checkbox é mais usual =)

dificil achar alguem que saiba usar o select multiple

Compartilhar este post


Link para o post
Compartilhar em outros sites

rsrs , meu caso a empresa quer o multiple --' , estamos desenvolvendo site de empregos. e ta complicado arruma esse problema

 

 

meu jovem,

aqui deu certo

 

olha como eu fiz com o select

 <select name="testes[]" size=4 multiple="multiple">
   <optgroup label="Aplicações de Escritório">
               <option>MICROSOFT ACCESS</option>
           <option value="EXCEL">MICROSOFT EXCEL</option>
           <option value="WORD">MICROSOFT WORD</option>
           <option value="POWERPOINT">MICROSOFT POWER POINT</option>
           <option value="OUTLOOK">MICROSOFT OUTLOOK</option>
</select>
<input type="submit" name="testar" value="testar">
</p>

 

 

e no meu codigo que vai receber fiz assim

 

if(isset($_POST['testar'])){
	$testes[] = $_POST['testes[]'];

	echo "<pre>";
	print_r ($testes);
	echo "</pre>";

	$contador = count($testes);


	for($i = 0 ; $i < $contador -1; $i++){
	$palava .= $testes[$i] . "-";

	}
echo "<br />" . $palava;
}

 

 

coloquei o codigo todinho pra ser trabalhado na mesma pagina

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu PHP deve ficar assim:

 

   $conhecimento_infor = $_POST['conhecimento_informatica'];
   $contador           = count($conhecimento_infor);
   for ($i=0;$i < $contador;$i++) {
       $conhecimento_infor = $conhecimento_infor[$i];
   }

 

O seu HTML já está certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha só o php

KHRLB.png

 

 

o html

AAqST.png

 

 

e olha oque me grava no banco de dados

 

ueYcr.png

 

 

 

presta atencao

acredito eu

que o erro esteja na linha 55

 

troca esse

 

$conhecimento_informatica .= $conhecimento_informatica[$i] . "-";

 

por esse

 

$curso .= $conhecimento_informatica[$i] . "-";

 

 

daquela forma tu subscrevente os valores da viariavel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Keven,

 

Vamos descomplicar tudo e simplificar pra ti.

 

Primeiro erro:

 

$conhecimento_informatica[] = $_POST['conhecimento_informatica[]'];

 

Não tem necessidade de colocar essa variável como array.

 

Segundo erro:

 

$conhecimento_informatica .= $conhecimento_informatica[$i] . '-';

 

Você está querendo concatenar uma string em um array... Não dá !

 

Solução ( Nunca testei, mas pela lógica deve funcionar ):

 

<?php $conhecimento_informatica = implode('-', $_POST['conhecimento_informatica[]']); ?>

 

CASO NÃO FUNCIONE... Vamos no modo tradicional :-)

 

<?php
// Transforma a variável em um Array
$conhecimento_informatica = Array();
// Armazeno todo o conteudo para facilitar o mapeamento.
$arrayPost = $_POST['conhecimento_informatica[]'];

for($i = 0; $i <= count($arrayPost)-1; $i++)
{
    $conhecimento_informatica[$i] = $arrayPost[$i];
}

$conhecimento_informatica = implode('-', $conhecimento_informatica);

// Exibe o output da string ;)
var_dump($conhecimento_informatica);
?>

 

Sucesso :-)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dii

 

o Primeiro modo nao funcinou o segundo tbm nao.

 

no primeiro modo deu erro de implode.

 

no segundo nao da erro mais minha validação e empty diz que eu nao escolhi nenhuma opção ou seja como se nada fosse selecionado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dii

 

o Primeiro modo nao funcinou o segundo tbm nao.

 

no primeiro modo deu erro de implode.

 

no segundo nao da erro mais minha validação e empty diz que eu nao escolhi nenhuma opção ou seja como se nada fosse selecionado

mas esse erro é real...

teria que colocar ele assim

 

$testes[] = $_POST['testes[]'];


$cursosArr = implode("-", $testes);

echo $cursosArr;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.