Jump to content
Sign in to follow this  
asacap1000

Formulario com multiselect - com automultiselect no momento do submit

Recommended Posts

Galera estou com uma zica e não consigo resolver. Preciso da ajuda de vocês.

 

Tenho um formulário de Ordem de Coleta, e existe um campo que carrega as informações vinda do Banco de dados referente aos documentos disponíveis. Até aí blz.

 

Para ele criar esta ordem de coleta ele pode escolher quais documentos ele irá retirar, sendo assim estou utilizando duas janelas a primeira carrega os numeros dos documentos e ao clicar no documento ele é enviado para outra janela.

 

Segue a parte do script.

<table width="600" height="190" border=0 align=left cellpadding="0" cellspacing="0" valign=center bordercolor="#ffffff">
  <tr> <label><strong>DOCUMENTOS LIBERADOS    -    CASO NÃO ENCONTRE NA LISTA ABAIXO <b style="color:#0049F4"><a href="javascript:abrir('statusdoc.php');"> -> CLIQUE AQUI <-  </a></b><P> CLIQUE NOS DOCUMENTOS PARA ADICIONAR À ORDEM</strong></label><br/><hr>

    <td width="280"><div align="center"class="easyui-datagrid" id="dg" style="width:300px"
			title="Documentos Disponíveis" url="apontador1_getdata.php"></div><strong>Documentos Disponíveis</strong></td>
    <td width="130"></td>
    <td width="280"><div align="center"class="easyui-datagrid" id="dg" style="width:300px"
			title="Documentos Selecionados" url="apontador1_getdata.php"></div><strong>Documentos Adicionados à Ordem</strong></td>
  </tr>
  <tr>
    <td height="168"><script type="text/javascript">

var from_array = new Array('<?php ociexecute($stmu);
while (($row = oci_fetch_array($stmu, OCI_BOTH)) != false) { echo "".oci_result($stmu,1) .";  ','<strong></strong><hgroup>"; }?>');  // neste campo é gerado a lista de documentos liberados
var to_array = new Array(); // neste campo recebe os documentos selecionados

function moveoutid()
{
	var sda = document.getElementById('xxx');
	var len = sda.length;
	var sda1 = document.getElementById('tb_doc');
	for(var j=0; j<len; j++)
	{
		if(sda[j].selected)
		{
			var tmp = sda.options[j].text;
			var tmp1 = sda.options[j].value;
			sda.remove(j);
			j--;
			var y=document.createElement('option');
			y.text=tmp;
			try
			{sda1.add(y,null);
			}
			catch(ex)
			{
			sda1.add(y);
			}
		}
	}
}

function moveinid()
{
	var sda = document.getElementById('xxx');
	var sda1 = document.getElementById('tb_doc');
	var len = sda1.length;
	for(var j=0; j<len; j++)
	{
		if(sda1[j].selected)
		{
			var tmp = sda1.options[j].text;
			var tmp1 = sda1.options[j].value;
			sda1.remove(j);
			j--;
			var y=document.createElement('option');
			y.text=tmp;
			try
			{
			sda.add(y,null);}
			catch(ex){
			sda.add(y);	
			}

		}
	}	
}
function selectAll(){
                
                var selecionados = document.getElementById('tb_doc');
                
                for(i=0; i<=selecionados.length-1; i++){
                
                        selecionados.options[i].selected = true;
                
                }
        }

</script>
<script type="text/javascript">
for(var j=0;j<to_array.length;j++)
{
	document.write['<value>'+to_array[j]+'</value>'];
	el.options[i].selected = true;
}
  </script>
      <select name="xxx" onClick=moveoutid() size=15 multiple id=xxx style="width:280" draggable="true">
        <script type="text/javascript">

for(var i=0;i<from_array.length;i++)
{
	document.write('<option>'+from_array[i]+'</option>');
}
        </script>
      </select></td>
    <td><p align="center">
      <input type=button hidden="1" value="Selecionar" onClick=moveoutid()>
    </p>
      <p align="center">
      <img src="setaverde.png" width="180" height="79" alt=""/>
        <input type=button  hidden="1" value="Retirar" onClick=moveinid()>
      </p></td>
    <td>    
    <select name="tb_doc[]"  spellcheck="true" onClick=moveinid() id="tb_doc" multiple="multiple" size=15 style="width:280 ;text-transform: uppercase; color:#C00000; font-weight:bold" cols="50" rows="17">
        </select>

Vamos ao problema, se eu coloco um required no <select name "tb_doc[]"> obrigatóriamente tenho que selecionar todos os documentos para poder enviar todos que escolhi senão ele só vai o selecionado. Se eu não colocar o required o cliente pode esquecer de selecionar o documento e criar a ordem sem o documento.

 

Como eu poderia fazer esta validação e ao mesmo tempo capturar todos os documentos selecionados sem mudar de página.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By duarte.php
      Boa noite, pessoal, estou fazendo meu tcc (nível técnico kkk) e preciso de ajuda com uma conexão com o banco.
       
      Fiz um formulário para consultar empréstimos em uma biblioteca através do rm (id) e exibir os dados que estão cadastrados neste rm. 
      Estou com dificuldades para que os dados sejam puxados e exibidos na página. 
       
      Esta é a parte que pede o RM no html
      <h4 class="title">Insira o seu RM: </h4> <input type="text" name="rm" class="form-control" required/>  
      Este é o código php
      <?php $rm = $_POST['rm']; include("conecta.php"); $busca = mysql_query("SELECT * FROM tb_locador WHERE rm='$rm'"); $dado = mysql_fetch_array($busca); $nome = $dado['nome']; $ano = $dado['ano']; $curso = $dado['curso']; $tel = $dado['tel']; echo "RM: " . $rm . "<br>"; echo "Nome do locador: ".$nome. "<br>"; echo "Curso do locador: ".$curso. "<br>"; echo "Ano de início do curso: ".$ano. "<br>"; echo "Telefone do locador: ".$tel. "<br>"; ?> Até então, o único dado exibido é o RM, como faço para exibir o nome, curso, ano e telefone? 
       
    • By ROGERIO AMERICA
      Boa tarde. Possuo 1 bd com tabela principal empresa=(não editável), atendente=(não editável), consultor=(não editável), operadoras=(não editável), e a "agenda" que é editável. Criei uma página www onde eu mostraria os dados empresa juntamente com campos "agenda" para trabalhar com as informações disponíveis e coletadas para gerar dados na agenda. Gostaria que pudessem me ajudar ou indicar uma forma onde eu possa unir todos dados envolvidos nessa agenda conforme figuras.
      O código abaixo mostra os dados do cliente:
      <form> <input type="text" size="5" name="id_empresa" value="<?php echo $empresa['id_empresa']; ?>"><br></br> <input type="text" size="12" name="cnpj" value="<?php echo $empresa['cnpj']; ?>"> <input type="text" size="53" name="empresa" value="<?php echo $empresa['empresa']; ?>"><br></br> <input type="text" size="33" name="endereço" value="<?php echo $empresa['endereço']; ?>"> <input type="text" size="3" name="nº" value="<?php echo $empresa['nº']; ?>"> <input type="text" size="24" name="complemento" value="<?php echo $empresa['complemento']; ?>"><br></br> <input type="text" size="23" name="bairro" value="<?php echo $empresa['bairro']; ?>"> <input type="text" size="22" name="cidade" value="<?php echo $empresa['cidade']; ?>"> <input type="text" size="3" name="uf" value="<?php echo $empresa['uf']; ?>"> <input type="text" size="7" name="cep" value="<?php echo $empresa['cep']; ?>"><br></br> <input type="text" size="35" name="admin" value="<?php echo $empresa['contato']; ?>"> <input type="text" size="11" name="fone1 " value="<?php echo $empresa['fone1']; ?>"> <input type="text" size="11" name="fone2" value="<?php echo $empresa['fone2']; ?>"><br></br> <input type="text" size="40" name="email" value="<?php echo $empresa['email']; ?>"> <input type="text" size="3" name="linhas ativas" value="<?php echo $empresa['linhas ativas']; ?>"> <input type="text" size="8" name="vencimento" value="<?php echo $empresa['vencimento']; ?>"> </form> O código abaixo mostra os campos editáveis:
      $tem plano = $_POST["tem plano"]; $qtde de linhas = $_POST["qtde de linhas"]; $fatura media = $_POST["fatura media"]; $visita = $_POST["visita"]; $data = $_POST["data"]; $hora = $_POST["hora"]; $tipo de visita = $_POST["tipo de visita"]; $resenha = $_POST["resenha"];
           
          $string_sql = "INSERT INTO agenda (plano,qtde de linhas,fatura media,visita,data, hora,tipo de visita, resenha ) VALUES (null,'$plano','$qtde de linhas','$fatura','$visita','$data','$hora','$tipo de visita','$resenha')"; //String com consulta SQL da inserção
           
          mysql_query($string_sql,$conexao); //Realiza a consulta
           
       
      if(mysql_affected_rows() == 1){ //verifica se foi afetada alguma linha, nesse caso inserida alguma linha echo "<p>Cadastro feito com sucesso</p>"; echo '<a href="empresa.php">Voltar para formulário de cadastro</a>'; //Apenas um link para retornar para o formulário de cadastro } else { echo "Erro, não possível inserir no banco de dados"; } mysql_close($conexao); //fecha conexão com banco de dados ?> abaixo temos a premissa de funcionamento: 
       

      e abaixo temos a suposta tela de trabalho:"ainda esta sem CSS" 

      Como fazer para o form alimentar a tabela agenda sendo que 1 parte dos dados é só para visualização e a outra é editável e ao salvar, ir para próxima empresa? Obs: Estou querendo implementar isso pois descobri que a empresa de CRM que eu pagava estava vendendo Mailing para concorrentes. (era pago)
       
    • By michael450
      Senhores, boa tarde.
       
      Estou com um probleminha... rss', preciso fazer a listagem de uma função da biblioteca "SPED-NFe"   na qual consulto quais as NFe que emitiram contra meu CNPJ, porém o ele executa toda a função e depois me trás o resultado, eu gostaria de trazer o resultado instantaneamente, como se fosse uma atualização segundo a segundo.
       
       
      Essas informações não são salvas em DB, é apenas para consulta.
      Se alguém puder ajudar serei muito grato,
       
      Abraço.
       
      Michael Douglas
    • By MateusOFCZ
      Olá, estou desenvolvendo um projeto de registro de clientes em java no netbeans e usando o MySQL Workbench e Xampp, gostaria de saber se é possível fazer com que o programa fique verificando se está conectado com o banco de dados, e caso não esteja ele mostra uma mensagem pedindo para o usuário se conectar em uma rede, caso ele se conecte o programa irá esconder essa mensagem e funcionará normalmente.

      Eu consegui fazer com que ele mostre se está conectado ou não, porém se eu desligar o servidor ele não atualiza mostrando que está offline, ele continua como online...
    • By Robson Augusto
      Boa noite galera, não tenho conhecimento em programação, o que desenvolvi em meu site atualmente foi através de pesquisas e curiosidade em aprender e modelar site por conta própria.
      Hoje estou com um problema quanto a velocidade do site, muitas JS bloqueando a renderização do site, eu cheguei a tentar jogar todo JS para fim da página "footer", mas algumas páginas se desconfigurarão, então eu gostaria de pedir ajuda a vocês, sobre como eu deixo meu site mais rápido sem desconfigurar as páginas... Ou como adicionar o async dentro dessas funções!?
      Segue o php de chamadas do css e js
       
      <?php
      class CaryAssets
      {
          var $location;
          var $section;
          public function __construct()
          {
              $this->location = Rewrite::newInstance()->get_location();
              $this->section = Rewrite::newInstance()->get_section();
              osc_add_hook('header', array(&$this, 'enqueue_css'), 1);
              osc_add_hook('header', array(&$this, 'enqueue_js'));
          }

          function enqueue_css()
          {
              $location = Rewrite::newInstance()->get_location();
              $section = Rewrite::newInstance()->get_section();
              if ($location === 'user' && in_array($section, array('dashboard', 'profile', 'alerts', 'change_email', 'change_username', 'change_password', 'items'))) {
                  $user = User::newInstance()->findByPrimaryKey(Session::newInstance()->_get('userId'));
                  View::newInstance()->_exportVariableToView('user', $user);
                  ?>
                  <script type="text/javascript">
                      var cary_theme = window.cary_theme || {};
                      cary_theme.user = {};
                      cary_theme.user.id = '<?php echo osc_user_id(); ?>';
                      cary_theme.user.secret = '<?php echo osc_user_field("s_secret"); ?>';
                  </script>
                  <?php
              }
              // osc_enqueue_style('bootstrap', osc_current_web_theme_url() . 'lib/bootstrap/css/bootstrap.min.css');
              // customized bootstrap with 480px @media
              // https://gist.github.com/wdollar/135ec3c80faaf5a821b0
              osc_enqueue_style('bootstrap', osc_current_web_theme_url() . 'css/bootstrap.min.css');

              osc_enqueue_style('font-awesome', 'https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css');
              osc_enqueue_style('bootstrap-social', osc_current_web_theme_url() . 'css/bootstrap-social.css');
              osc_enqueue_style('bxslider-css', osc_current_web_theme_url() . 'lib/bxslider/css/jquery.bxslider.min.css');
              osc_enqueue_style('sweetalert-css', osc_current_web_theme_url() . 'js/sweetalert-master/dist/sweetalert.css');
              osc_enqueue_style('style', osc_current_web_theme_url() . 'css/style.css');
              osc_enqueue_style('style-jquery-ui', osc_current_web_theme_url() . 'lib/jquery-ui/jquery-ui.css');
              osc_enqueue_style('style-animatedModal', '//cdnjs.cloudflare.com/ajax/libs/animate.css/3.2.0/animate.min.css');
              if(Params::getParam('page') === 'item' &&
                  (Params::getParam('action')==='item_add' || Params::getParam('action')==='item_edit')) {
                  osc_enqueue_style('style-jquery-ui', osc_current_web_theme_url() . 'js/alt-checkbox/jquery.alt-checkbox.css');
              }
          }
          function enqueue_js()
          {
              osc_register_script('jquery', osc_current_web_theme_url() . 'lib/jquery/js/jquery-1.12.0.min.js');
              osc_enqueue_script('jquery');
              osc_register_script('jquery-ui', osc_current_web_theme_url() . 'lib/jquery-ui/jquery-ui.js', 'jquery');
              osc_enqueue_script('jquery-ui');
              osc_enqueue_script('php-date');
              osc_register_script('animatedModal', osc_current_web_theme_url() . 'js/animatedModal.js-master/animatedModal.min.js', 'jquery');
              osc_enqueue_script('animatedModal');
              osc_register_script('global-js', osc_current_web_theme_url() . 'js/global.js', 'jquery');
              osc_enqueue_script('global-js');
              osc_register_script('sticky', osc_current_web_theme_url() . 'node_modules/sticky-kit/dist/sticky-kit.js', 'jquery');
              osc_enqueue_script('sticky');
              osc_register_script('bootstrap-js', osc_current_web_theme_url() . 'lib/bootstrap/js/bootstrap.min.js', 'jquery');
              osc_enqueue_script('bootstrap-js');
              osc_register_script('bxslider-js', osc_current_web_theme_url() . 'lib/bxslider/js/jquery.bxslider.min.js', 'jquery');
              osc_enqueue_script('bxslider-js');
              $url = 'https://maps.googleapis.com/maps/api/js?libraries=places';
              if (trim(osc_get_preference('maps_key', 'cary_theme')) != '') {
                  $url = 'https://maps.googleapis.com/maps/api/js?key=' . trim(osc_get_preference('maps_key', 'cary_theme')) . '&libraries=places';
              }
              osc_register_script('gmaps-js', $url);
              osc_register_script('sweetalert-js', osc_current_web_theme_url() . 'js/sweetalert-master/dist/sweetalert.min.js');
              osc_enqueue_script('sweetalert-js');
              if (osc_is_ad_page() && osc_get_preference('include_maps_js', 'cary_theme')) {
                  osc_enqueue_script('gmaps-js');
              }
              osc_register_script('delete-user-js', osc_current_web_theme_js_url('delete_user.js'), 'jquery-ui');
              if (($this->location === 'user' &&
                      in_array($this->section, array('dashboard', 'profile', 'alerts', 'change_email', 'change_username', 'change_password', 'items')))
                  || (Params::getParam('page') === 'custom' && Params::getParam('in_user_menu') == true)
              ) {
                  osc_enqueue_script('delete-user-js');
              }
              if(Params::getParam('page') === 'item' &&
                  (Params::getParam('action')==='item_add' || Params::getParam('action')==='item_edit')) {
                  osc_register_script('alt-checkbox-js', osc_current_web_theme_url() . 'js/alt-checkbox/jquery.alt-checkbox.js');
                  osc_enqueue_script('alt-checkbox-js');
              }
          }
      }
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.