Ir para conteúdo

POWERED BY:

Arquivado

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

Paulo Roberto Start Corp

[Resolvido] preencher campos no lugar certo js

Recommended Posts

boa noite

 

estou usando um autocomplete jquery (peguei na internete e adaptei + ou -)

so que estou com um prolblema

 

eu faço a consulta ele acha o nome normal

quanto eu clico para selecionar quero que ele auto complete outros campos

até o campo 3 ele completa normal

agora o campo 4 ele dá erro ( os e-mails que tem _ ele ao aparece até antes do _ ex: contato_teste@gmail.com so aparece assim contato )

 

faço a busca com php assim

 

if( isset( $_REQUEST['identifier'] ) && $_REQUEST['identifier'] == "Fornecedor")
{
$sql = "SELECT * FROM pd_fornec where locate('$q',fantasia) > 0 order by locate('$q',fantasia) limit 10";
$r = mysql_query( $sql );
if ( $r )
{
	echo '<ul>'."\n";
	while( $l = mysql_fetch_array( $r ) )
	{
	$p = $l['fantasia'];
	$p = preg_replace('/(' . $q . ')/i', '<span style="font-weight:bold;">$1</span>', $p);
	echo "\t".'<li id="autocomplete_'.$l['codfornec'].'" rel="'.$l['cnpj'].'_' . $l['ie'] .'_' . $l['nome'] . '_' . $l['fone1'] .'_' . $l['email'] .'">'. utf8_encode( $p ) .'</li>'."\n";
	}
	echo '</ul>';
}
}

 

no topo da minha index eu chamo o autocomplete assim

 

<script type="text/javascript">
$(document).ready(function()
{
	$('#complete_fornec').simpleAutoComplete('buscas/fornec.php',{
	autoCompleteClassName: 'autocomplete',
	selectedClassName: 'sel',
	attrCallBack: 'rel',
	identifier: 'Fornecedor'
	},nomeCallback);
   	});

function nomeCallback( par )
{
	$("#cnpj").val( par[0] );
	$("#ie").val( par[1] );
	$("#nome").val( par[2] );
	$("#fone").val( par[3] );
	$("#email").val( par[4] );
}

</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso é pq seu script usa o _ como separador.

 

considere retornar dados em query string.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta usando o | (pipe)

mas ai você vai ter q editar o core desse plugin ai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta usando o | (pipe)

mas ai você vai ter q editar o core desse plugin ai.

 

 

onde ?

desculpa ai é que so sei um pouco de php js eu num sei

mais agradeço d+ a paciencia e atençao

(function($){
$.fn.extend(
{
	simpleAutoComplete: function( page, options, callback )
	{
		if(typeof(page) == "undefined" )
		{
			alert("simpleAutoComplete: Você deve especificar a página que processará a consulta.");
		}

		var classAC = 'autocomplete';
		var selClass = 'sel';
		var attrCB = 'rel';
		var thisElement = $(this);

		$(":not(div." + classAC + ")").click(function(){
			$("div." + classAC).remove();
		});

		thisElement.attr("autocomplete","off");

		thisElement.keyup(function( ev )
		{
			var getOptions = { query: thisElement.val() }

			if( typeof(options) == "object" )
			{
				classAC = typeof( options.autoCompleteClassName ) != "undefined" ? options.autoCompleteClassName : classAC;
				selClass = typeof( options.selectedClassName ) != "undefined" ? options.selectedClassName : selClass;

				attrCB = typeof( options.attrCallBack ) != "undefined" ? options.attrCallBack : attrCB;
				if( typeof( options.identifier ) == "string" )
				getOptions.identifier = options.identifier;

				if( typeof( options.extraParamFromInput ) != "undefined" )
				getOptions.extraParam = $( options.extraParamFromInput ).val();
			}

			kc = ( ( typeof( ev.charCode ) == 'undefined' || ev.charCode === 0 ) ? ev.keyCode : ev.charCode );
			key = String.fromCharCode(kc);

			//console.log(kc, key, ev );

			if (kc == 27)
			{
				$('div.' + classAC).remove();
			}
			if (kc == 13)
			{
				$('div.' + classAC + ' li.' + selClass).trigger('click');
			}
			if (key.match(/[a-zA-Z0-9_\- ]/) || kc == 8 || kc == 46)
			{
				$.get(page, getOptions, function(r)
				{
					$('div.' + classAC).remove();
					autoCompleteList = $('<div>').addClass(classAC).html(r);
					if (r != '')
					{
						autoCompleteList.insertAfter(thisElement);

						var position = thisElement.position();
						var height = thisElement.height();
						var width = thisElement.width();

						$('div.' + classAC).css({
							'top': ( height + position.top + 6 ) + 'px',
							'left': ( position.left )+'px',
							'margin': '0px'
						});

						$('div.' + classAC + ' ul').css({
							'margin-left': '0px'
						});

						$('div.' + classAC + ' li').each(function( n, el )
						{
							el = $(el);
							el.mouseenter(function(){
								$('div.' + classAC + ' li.' + selClass).removeClass(selClass);
								$(this).addClass(selClass);
							});
							el.click(function()
							{
								thisElement.attr('value', el.text());

								if( typeof( callback ) == "function" )
									callback( el.attr(attrCB).split('_') );

								$('div.' + classAC).remove();
								thisElement.focus();
							});
						});
					}
				});
			}
			if (kc == 38 || kc == 40){
				if ($('div.' + classAC + ' li.' + selClass).length == 0)
				{
					if (kc == 38)
					{
						$($('div.' + classAC + ' li')[$('div.' + classAC + ' li').length - 1]).addClass(selClass);
					} else {
						$($('div.' + classAC + ' li')[0]).addClass(selClass);
					}
				}
				else
				{
					sel = false;
					$('div.' + classAC + ' li').each(function(n, el)
					{
						el = $(el);
						if ( !sel && el.hasClass(selClass) )
						{
						el.removeClass(selClass);
						$($('div.' + classAC + ' li')[(kc == 38 ? (n - 1) : (n + 1))]).addClass(selClass);
						sel = true;
						}
					});
				}
			}
			if (thisElement.val() == '')
			{
				$('div.' + classAC).remove();
			}
		});
	}
});
})(jQuery);

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele faz o callback aqui:

 

callback( el.attr(attrCB).split('_') );

dica: http://wbruno.com.br/blog/2011/05/30/nao-tenha-medo-codigo/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde surgiu uma nova duvida

 

ex: tenho um campo para mostrar o documento: que tem que exibir cpf ou cnpj em php agente faz um if usando como base o campo tipo F ou J

so que como eu disse nao sei nada de js

estou fazendo a busca normalmente esta exibindo os resultados normalmente tb

 

mais teria como fazer um if neste codigo acima para se tipo==F exibe cpf, rg se tipo==J exibe cnpj, ie, nome fanatazia ?

 

 

 

deu pra entender ?

 

muito obrigado desde já

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.