Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite estou, com um problema em tentar fazer uma busca no banco de dados, meu projeto é o seguinte um input onde o usuário digita o nome e como o Ajax retorna se o nome já esta cadastrado no banco ou não.
O problema é que quando o usuário digita (seunome#algumacoisa) após o caracter ' # ' não é passada para a pagina php o restante da frase muito menos o caracter ' # ', alguém poderia me dar uma força agradeço,
busca.js
-----------------------------------------------------------
function openAjax(){
var ajax;
try{
ajax = new XMLHttpRequest();
}catch(erro){
try{
ajax = new ActiveXObject("Msxl2.XMLHTTP");
}catch(ee){
try{
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
ajax = false;
}
}
}
return ajax;function busca(){
if(document.getElementById){
var termo = document.getElementById('q').value;
var exibeResultado = document.getElementById('exibe');
if(termo !== "" && termo !== null && termo.length >= 1){
var ajax = openAjax();
ajax.open("GET", "busca/buscar.php?q="+termo, true);
ajax.onreadystatechange = function(){
if(ajax.readyState == 1){
exibeResultado.innerHTML = '<p>Carregando resultados...</p>';
}
if(ajax.readyState == 4){
if(ajax.status == 200){
var resultado = ajax.responseText;
resultado = resultado.replace(/\+/g, " ");
resultado = unescape(resultado);
exibeResultado.innerHTML = resultado;
}else{
exibeResultado.innerHTML = '<p>Ouve algum erro na requisição</p>';
}
}
}
ajax.send(null);
}
}
}
buscar.php
-----------------------------------------
<?php
echo $get = $_GET['q'];
?>
index.php
--------------------------------------
<form name="cadastro" action="#" method="post">
<input name="q" id="q" type="text" onKeyUp="busca();" placeholder="nome" value="nome" />
<input type="submit" name="login_bar" id="login_bar" value="enviar" border="0" />
</form>
<div id="exibe"></div>Mais como posso retirar ele, pois no input não quero que ele digite este ' # ' depois do ajax eu tenho a função que tira o ' # ' mais ele não chega na página php, no ajax ele já corta teria como eu resolver??
string = string.replace(token, newtoken);
Tem necessidade disso mesmo ?
onKeyUp="busca();"
@cristianoolv
Não entendi?
termo = document.getElementById('q').value.replace(/#/g,'-');
@cristianoolv
Asim funcionou ele altera o ' # ' posr ' - ', mais você saberia como posso fazer para quando ele digitar ' # ' no campo input onde está digitando ele não aparecer o ' # ', exemplo estou digitando e no meio digitei ' # ' este caracter não aparecer ?
.replace(/#/g,"")
para mim colocar no replace que é para deletar na digitação mais de um caracter como faço, ex: quero tirar # , ç * .
Ai é so da uma pesquisada de Expressão Regular no google...
tipo pra deixar so letras_ e numeros :
/[^a-z0-9_]/gi
eu acho que o jogo da velha é reservado para alguma outra coisa, tente substituí-lo por outra coisa, voce pode deixar o usuario escrever no formato nome#algumaCoisa, mas antes de você passar os valores para o php, substitua o # po algo diferente, tipo underline ou algo semelhante