Enviando outros dados junto com um .serialize() – jQuery

Opa! Apareceu essa dúvida no fórum hoje.

Note que o retorno do serialize() é apenas uma string. Uma simples string.
Descobri isso assim:

typeof $form.serialize();

Logo, se quero enviar outros dados junto com estes, então só preciso concatenar nessa string:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
    var $form = jQuery('#form'),
    data = $form.serialize();



    console.log( data+'&a5=v5&a6=v6' );

});
</script>

<form action="" id="form">
    <input type="text" name="a1" value="v1" />
    <input type="text" name="a2" value="v2" />
    <input type="text" name="a3" value="v3" />
    <input type="text" name="a4" value="v4" />
</form>

Simples ne?! nada de desespero.. só entender oque temos em mãos e fazer.

5 Comments

  1. Valdirei Silva

    julho 10, 2013 at 18:02

    Willian, boa tarde!
    Estou tentando enviar este form ja faz uns dias e não consigo, será que você poderia dar uma ajuda?
    Abraço

    	$(document).ready(function(){
    	 $('#button').click(function(){
       $('empresa').submit();
       
       $("#empresa").change(function(){
           var empresa      = $("#empresa option:selected").text();
    	   var datainicial  = $("datainicial").val();
    	   var datafinal    = $("datafinal").val(); 
          
    	$.ajax({
    				type: "POST",
    				url: "busca.php",
    				data: {empresa: empresa, datainicial: datainicial, datafinal: datafinal},
    				success: function( data )
    				{
    				
    					$('#mostra').show();
                        $('#mostra').html(data);
     
          });
       });
    });
     

    Relatório de chamados

    Selecione a empresa
    Selecione…

     <?php 
     $consulta = mysql_query("SELECT glpi_entities.completename FROM glpi_entities");
     while( $row = mysql_fetch_assoc($consulta) )
    {
     echo "".$row['completename']."";
    }
     ?>
    

    Resultado
    Trazer o resultado aqui

  2. Cara eu to com um problema com este selialize…se puder dara uma força…

    $(document).ready(function(){
       // $("input.telefone").mask("(99) 99999-9999");
       
       var maskBehavior = function (val) {
      return val.replace(/\D/g, '').length === 11 ? '(00) 00000-0000' : '(00) 0000-00009';
    },
    options = {onKeyPress: function(val, e, field, options) {
            field.mask(maskBehavior.apply({}, arguments), options);
        }
    };
    
    $('.telefone').mask(maskBehavior, options);
        
        $(".resp").mask('9');
    
        $(".resp").focusout(function(){
        	$$ = $(this).parents('table');
        	validNumbers = /^(1|2|3|4)/;
        	$resp1 = Number($$.find('input.resp1').val());
        	$resp2 = Number($$.find('input.resp2').val());
        	$resp3 = Number($$.find('input.resp3').val());
        	$resp4 = Number($$.find('input.resp4').val());
    
        if(validNumbers.test($(this).val())){
    		if($resp1 != '' || $resp2 != '' || $resp3 != '' || $resp4 != ''){
    	    	if($resp1 == $resp2 && $resp1 != '' && $resp2 != '' || $resp1 == $resp3 && $resp1 != '' && $resp3 != '' || $resp1 == $resp4 && $resp1 != '' && $resp4 != '' || $resp2 == $resp3 && $resp2 != '' && $resp3 != '' || $resp2 == $resp4 && $resp2 != '' && $resp4 != '' || $resp3 == $resp4 && $resp3 != '' && $resp4 != ''){
    					$$.find('input').addClass('error');
    					$(this).val('');
    					 $(this).focus();
    					//alert("Existe duplicidade de Valores.");
    		    		
    		    	}else{
    		    	$$.find('input').removeClass('error');
    			 	}
    			}
        	}else{
        		$(this).val('');
    			$(this).focus();
        	}
        });
    
        $("form.validapvi").validate({ 
            errorContainer: $("form.validapvi.msgError"), 
            errorLabelContainer: $("form.validapvi.msgError"),
            messages: {
                required: "Preencha todas as respostas e não repita as opções em uma pergunta"
            },
            submitHandler: function() {
              $('form.validapvi').submit();
                $.ajax({
                    type: 'POST',
                    //data: $("form.validapvi").serialize(),
                    dataType: "json",
                    url: 'envia.php',
                    success: function(json) {
                        if(json.msg = 'ok'){
                            alert('Seu formulario foi enviado. Obrigado.');
                            window.location = "resp_fale.php";
                            
                        }
                    }
                });
            }
        });
    
    });

    ai meu código as vezes envia sem os dados e as vezes não envia…

  3. Olá, como o retorno é uma string como posso trabalhar com ela dentro do próprio Js?

  4. Excelente, me ajudou bastante.
    abraço

  5. Estou tentando enviar os dados deste formulario via jQuery para outra página onde irei realizar uma consulta sql e logo apos retornarei o resultado da consulta, e tentarei enviar para outra página, porém não estou conseguindo!!! Poderia me ajudar???

                function clique(){
                    var codigo = $('#codigo').val();
                    
                    $.post('busca.php',{codigo:codigo},function($data){
                       console.log($data);
                       // var novaURL = "mapa.php".concat($data);
                       // $(window.document.location).attr('href',novaURL);
                       // var novaURL = "mapa.php?data={$data}";
                       // $(window.document.location).attr('href',novaURL);
                    //};
                } 

Deixe uma resposta

Your email address will not be published.

*