Ir para conteúdo
Fórum CódigoFonte.net
  • Anúncios

    • codigofonte

      Novo Fórum

      Pessoal, Atualizamos nossa versão do fórum para a mais recente da Invision Power. Como tínhamos uma versão muito antiga, talvez algumas áreas possam funcionar de forma errada ou com problemas, gostaria de pedir-lhes a compreensão, pois iremos resolvendo aos poucos. Até mais!
Entre para seguir isso  
Joilson Lira

Enviar array com Ajax

Recommended Posts

Galera, é o seguinte...

Crio formulários como no seguinte exemplo:


<form name="teste" action="teste.php" method="post">
<input type="text" name="teste[nome]" />
<input type="password" name="teste[senha]" />
<input type="submit" value="Enviar" />
[/html]

Assim, no arquivo processsador faço o seguinte:

[php]
...
if(isset($_POST['teste'])){
$nome = $_POST['teste']['nome'];
$senha = $_POST['teste']['senha'];
<<execute alguma coisa>>
}
elseif(isset($_POST['reteste'])){
<<execute alguma outra coisa>>
}
...
[/php]

Gostaria de saber como enviar estes dados com ajax, pois os exemplos que vi até agora sugerem apenas o envio de dados capturando dado por dado como por exemplo:

[code] <script> $("form").submit(function(){ var nome = $("[name]='teste[nome]'"); var senha = $("[name]='teste[senha]'"); $.post('teste.php', {nome:nome,senha:senha}, function(resposta){ <<faça alguma coisa com a resposta>> }); }); .... </script> [/code]
Já tentei isso:
[code] <script> $("form").submit(function(){ var teste = $("[name]*='teste'"); $.post('teste.php', {teste:teste}, function(resposta){ <<faça alguma coisa com a resposta>> }); }); .... </script> [/code]

Mas dá errado porque a variável teste no js é um objeto e não um array.

Como posso resolver isso?

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu tenho feito desta forma, mas o meu problema é na página seguinte.

Não estou conseguindo pegar a $_SESSION. Talvez te ajude aí:


<!-- index.php -->
...
<form id="login_form" action="" method="post">
<input id="login" name="login" type="text" />
<input id="senha" name="senha" type="password" />
<input id="submit" name="ok" type="submit" value="OK" />
</form>
...
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script src="scripts.js" type="text/javascript"></script>
</body>
</html>

[/html]

[code] // scripts.js $(function () { $.post('login.php', { login: $('#login').val(), senha: $('#senha').val() }, function (data) { if (data == 'yes') { // Se a response do PHP for yes, redireciona para logado.php document.location = 'logado.php'; } else { // Do contrario, mostra alguma mensagem de erro e retorna para o campo login $('#msgbox').addClass('error'); $('#login').focus(); } ); // return false para evitar a acao padrao do evento submit // ou entao use $('#login_form').submit(function(event) { event.preventDefault(); }); return false; }); }); [/code]

[php]
// Login.php

<?php
// Apos a conexao com o banco, recebe os dados do post enviado pelo ajax
...
$login = $_POST['login'];
$senha = $_POST['senha'];

// Evita algumas tecnicas de MySQL Injection
$login = stripslashes($login);
$senha = stripslashes($senha);
$login = mysql_real_escape_string($login);
$senha = mysql_real_escape_string($senha);

$query = "SELECT user_nome, user_login, user_senha FROM Users WHERE user_login = '".$login."';";

// Executa a query acima e armazena o resultado na variavel result
$result = mysql_fetch_array(mysql_query($query));

if ($result['user_senha'] == $senha) {
session_start();

$_SESSION = array(
'user_login' => $login,
'user_name' => $result['usr_nome']
);

// Envia resposta 'yes' ao servidor caso o login e a senha estejam corretos
echo "yes";
}

// Envia 'no' caso algo esteja errado
else
echo "no";
[/php]

Se o usuário e a senha estiverem corretos, ele será redirecionado para logado.php,

Pois o arquivo javascript espera uma response 'yes' para poder redirecionar.

Mas nessa nova página, minha variável $_SESSION está nula.

Bem, vou pesquisar mais pra resolver esse meu problema, mas talvez isso já te ajude.

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
Entre para seguir isso  

×