Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
olá pessoal, eu não estou conseguindo fazer o redirecionamento apos o cadastro para index, eu estou perdido entre os ifs e else, eu acho que só pode ser isso, quando eu coloco meu código trava, e não faz nada. vou postar o print.

agora entendi, será que é esse o motivo que o código não vai nem pra frente e nem pra traz? porque eu ja fiz um projeto com php e dava certo de depois do cadastro ele ir para a index.php eu vou postar aqui o print, precisa por alguma coisa nesta pájina então que está com jquery e ajax?
vai o codigo pra voce ver.
$(function(){
var atual_fs, next_fs, prev_fs;
var formulario = $('form[name=formulario]');
function next(elem){
atual_fs = $(elem).parent();
next_fs = $(elem).parent().next();
$('#progress li').eq($('fieldset').index(next_fs)).addClass('ativo');
atual_fs.hide(800);
next_fs.show(800);
}
$('.prev').click(function(){
atual_fs = $(this).parent();
prev_fs = $(this).parent().prev();
$('#progress li').eq($('fieldset').index(atual_fs)).removeClass('ativo');
atual_fs.hide(800);
prev_fs.show(800);
});
$('input[name=next1]').click(function(){
var array= formulario.serializeArray();
if(array[0].value =='' || array[1].value =='' || array[2].value==''){
$('.resp').html('<div class ="erros"><p>preencha todos os campos para avançar</p></div>');
}else{
$('.resp').html('');
next($(this));
}
});
$('input[name=next2]').click(function(){
var array = formulario.serializeArray();
if(array[3].value =='' || array[4].value =='' || array[5].value==''){
$('.resp').html('<div class ="erros"><p>informe seus perfis sociais para avançar</p></div>');
}else{
$('.resp').html('');
next($(this));
}
});
$('input[type=submit]').click(function(evento){
var array = formulario.serializeArray();
if(array[6].value == '' || array[7].value == '' || array[8].value == ''){
$('.resp').html('<div class ="erros"><p>informe suas informaçoes pessoais para ser efetuado o cadastro</p></div>');
}else{
$.ajax({
type:'post',
url:'cadastrar.php',
dataType:'json',
data: {cadastrar:'sim', campos: array},
beforeSend: function(){
$('.resp').html('<div class="erros"><p>Aguarde enquanto processamos seus dados...</p></div>');
},
success: function(valor){
if(valor.erro == 'sim'){
$('.resp').html('<div class="erros"><p>'+valor.getErro+'</p></div>');
}else{
$('.resp').html('<div class="ok">'+valor.msg+'</div');
}
}
});
}
evento.preventDefault();
});
});

Segue código:
CÓDIGO
// ...
} else {
//$('.resp').html('<div class="ok">'+valor.msg+'</div');
window.location.href = "index.php";
}eu não sei oque houve mas não funcionou, apenas cadastrou e não direcionou para index.php, vou colocar o link nos inputs de cadastar para direcionar para index. obrigado pela ajuda.
O problema é que sua mensagem não vai aparecer, pelo fato que o script vai redirecionar assim que executado.
Enfim...
Alí onde você marcou a linha de vermelho:
header('index.php');
Ou sando javascript que dar no mesmo resultado:
echo ("<script>window.location.href = 'index.php';</script>");
tem rasão é isso mesmo.
>
Em 18/06/2019 at 17:00, Omar~ disse:
header('index.php');
Corrigindo quando usando o PHP, porque esqueci de escrever
O correto é usar a realocação
header('Location: index.php');
>
23 horas atrás, ricardonews disse:
tem rasão é isso mesmo.
Uma solução quando usando javascript
// A linha de vermelho que você marcou seria aqui
?>
<div id="resultado"></div>
<script>
document.getElementById('resultado').innerHTML = "O texto ou uma formatação HTML que preferir";
setTimeout(function () {
window.location.href = 'index.php';
}, 2000); // 2000 equivale a 2 segundos
<script>
<?php
Quando o script for executado ele vai pegar a tag div#Resultado e vai compor a marcação.
Logo em seguida começa uma contagem de tempo para redirecionar automaticamente.
**Só não sei se realmente funciona com esse negócio de jQuery pois só uso javascript nativo.**osmar~ , eu vou testar talvez funcione, se funcionar eu dou um retorno aqui.
Você tem razão.depois de testar , só funciona se não for com jquery mesmo. Se usar o php puro vai que uma beleza.
Estranho acho que deveria funcionar com o ajax da biblioteca jQuery.
Por essas e outras que a muito aboli completamente o uso dessa biblioteca que no meu ponto de vista é desnecessário em qualquer situação.
O que posso fazer por você então é lhe ajudar com um script meu mesmo para o uso de ajax.
Segue o exemplo:
Digamos que esse seja o index ou qualquer outro arquivo onde tenho um formulário cujo quero enviar os dados para outro.
<link href="AjaxRequest.css" rel="stylesheet" type="text/css"/>
<script src="AjaxRequest.js" type="text/javascript"></script>
<div id="resultado"></div>
<form id="exemplo" onsubmit="return ajax.form('exemplo', 'resultado', 'post.php');">
<input type="text" name="texto-a-enviar" />
<input type="text" name="texto-a-enviar-b" />
<button>Executar exemplo</button>
</form>
<script>
var ajax = new AjaxRequest();
</script>
Logo então nos parâmetros do método são
1 - O ID do formulário
2 - Onde mostrar o resultado
3 - Arquivo ao qual os dados serão enviados
No caso é post.php
<?php
if (!isset($_POST['texto-a-enviar'])) {
echo ("Algo errado o primeiro input não foi recebido");
} else if (!isset($_POST['texto-a-enviar-b'])) {
echo ("Algo errado o segundo input não foi recebido");
} else if (empty($_POST['texto-a-enviar'])) {
echo ("Digite algo no primeiro input");
} else if (empty($_POST['texto-a-enviar-b'])) {
echo ("Digite algo no segundo input");
} else {
echo ("<pre>"
. var_dump($_POST)
."</pre>"
. "<hr />"
. "Aguarde 2 segundos"
. "<script>"
. "setTimeout(function () {"
. "window.location.href = 'index.php';"
. "}, 2000);"
. "</script>");
}
Você pode encontrar essa classe que desenvolvi para ajax tanto para GET quanto para POST através do meu GIT:
[https://github.com/Spell-Master/sm-web/tree/master/scripts/AjaxRequest](https://github.com/Spell-Master/sm-web/tree/master/scripts/AjaxRequest)
Caso queira mais exemplos de uso dessa classe javascript pois existem outros métodos segue o link de download dos exemplos:
[https://drive.google.com/file/d/1vCvakLXwvYRhCW8-B3GpGKucpOINGl-l/view?usp=sharing](https://drive.google.com/file/d/1vCvakLXwvYRhCW8-B3GpGKucpOINGl-l/view?usp=sharing)Valeu, tenho muita dificuldade com js, é de grande valia oque você me passou.
Suponho que pela função json_encode () você deve estar
usando AJAX...
Pois bem, caso esteja usando o mesmo, creio eu que o
redirect deverá ser executado no próprio AJAX e não
no PHP.