Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Venho aqui tirar a duvida do dia. Por enquanto são duvidas totalmente bestas, me agurdem... rs.
Então eis a ideia:
d = document.cadastro;
value = eval("d."+field+".value");
if(field == "re_senha") {
value = d.senha.value+", "d.re_senha.value;
}
Ja tentei de tudo, que eu sei.(pouca coisa)
ja tentei separar com eval, print.
Alguem poderia me dar a luz?
Grato.
È então naverdade eu montei esse código.. Utilizando getElementById(). Mas ai resolvi trocar para document.
Mas será que você poderia explicar +/- pq não usar document.formulario.campo.valor ?
Estou fazendo uma pagina de cadastro. http://leo-pc.zapto.org:3535/inovarag2/?p=cadastro
Ai para economizar algumas linhas. Eu envio "variavel, variavel2" e do um explode(", ") com o php.
Vou postar o código completo. Para vocês verem o que eu poderia mudar. O que eu poderia estudar..
Código:
main_ajax.js
// Variável que receberá o objeto XMLHttpRequest
var req;
//Ajax Cadastro.
function fieldCheck(field) {
// Verificar o Browser
// Firefox, Google Chrorme, Safari e outros
if(window.XMLHttpRequest) {
req = new XMLHttpRequest();
}else if(window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
// Pegando os valor a serem enviados;
value = document.getElementById(field).value;
/*if(field == "re_senha") {
value = d.senha.value+", "d.re_senha.value;// Aqui vão os valuees, caso haja mais de um, e o nome do field que pediu a requisição.
var url = "func/cadastro.php?field="+field+"&value="+value;
// Chamada do método open para processar a requisição
req.open("Get", url, true);
// Quando o objeto recebe o retorno, chamamos a função callback();
req.onreadystatechange = function() {
// Exibindo mensagem de carregar
if(req.readyState == 1) {
document.getElementById('r-c_' + field + '').innerHTML = 'Verificando...';
}
// Verifica se o Ajax realizou todas as operações corretamente (essencial)
if(req.readyState == 4 && req.status == 200) {
// Resposta retornada pelo executor.php
var resposta = req.responseText;
// Abaixo colocamos a resposta na div do field que fez a requisição
document.getElementById('r-c_'+ field +'').innerHTML = resposta;
}
}
req.send(null);
}
cadastro.php
/*
* INCLUDES
*/
include("../classes/SQL.class.php"); //SQLcon Class
include("../presets/query.php"); //Queries
/*
* DECLARANDO CLASSES
*/
$SQLcon = new SQLcon;
$QRY = new SQLqrys;
/*
* ABREVIANDO AS VARIAVEIS RECEBIDAS
*/
$f = $_GET['field'];
$v = $_GET['value'];
/*
* ----------------------------------------------------------------------------------------------------
* SCRIPT
* ----------------------------------------------------------------------------------------------------
*/
if($f == "login" && $v != "") {
$SQLcon->connect();
$SQLcon->selectDB(0);
$arr[0] = $v;
$result = $QRY->getQRY($query[1], $arr);
if($result == "")
echo "<font color='green'>Login Disponivel.</font>";
else
echo "Login Indisponivel.";
}
// VERIFICANDO EMAIL.
else if($f == "email" && $v != "") {
if(preg_match("/^([\w-]+(?:\.[\w-]+))@((?:[\w-]+\.)\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i", $v)) {
$SQLcon->connect();
$SQLcon->selectDB(0);
$arr[0] = $v;
$result = $QRY->getQRY($query[2], $arr);
if($result == "")
echo "<font color='green'>Email Disponivel.</font>";
else
echo "Email Indisponivel.";
} echo "Preencha com um email válido.";
}
}
// VERIFICANDO RE-SENHA.
else if($f == "re-senha" && $v != "") {
$arr_pass = explode(", ", $v);
if($arr_pass[0] != $arr_pass[1]) {
echo "Senhas não coincidem.";
}
}
// VER. SE TODOS CAMPOS FORAM PREENCHIDOS
else if($f == "submit") {
}
?>
Sim, está incompleto.
@edit
Consegui mas fecha tópico não pf.
Fiz o seguinte.. Está certo?
value = document.getElementById(field).value;
if(field == "re_senha") {
value = value+", "+document.getElementById('senha').value;
}sim, bem melhor que antes.
só estará 'certo' se fizer oque você quer.
não use o formato
document.formulario.campo.valor
e nem use eval() dessa forma.
estude sobre as funções recomendadas: getElementById(),getElementsByTagName()...
explique oque você pretendia com esse trecho de código.