redirect met ajax

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Vincent Huisman

Vincent Huisman

21/08/2011 15:30:53
Quote Anchor link
Hallo,

Ik heb op een ene pagina een ajax request naar de andere pagina. Nu wil ik dat op de andere pagina een redirect komt. Maar ik ga niet naar de andere pagina. Ik wil dit liever niet in js doen want dan kan je de redirect tegen gaan omdat het clientside is.

Ik vond dit op internet maar dat lijkt niet te werken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$.ajax({
    type: "POST",
    url: reqUrl,
    data: reqBody,
    dataType: "json",
    success: function(data, textStatus) {
        if (data.redirect) {
            // data.redirect contains the string URL to redirect to
            window.location.href = data.redirect;
        }
        else {
            // data.form contains the HTML for the replacement form
            $("#myform").replaceWith(data.form);
        }
    }
});
 
PHP hulp

PHP hulp

23/01/2025 05:02:31
 
Maarten PHP

Maarten PHP

21/08/2011 16:03:51
Quote Anchor link
Heb je ervaring met JS en JQuery

Toevoeging op 21/08/2011 16:03:54:

Heb je ervaring met JS en JQuery
 
Vincent Huisman

Vincent Huisman

21/08/2011 16:06:32
Quote Anchor link
ja, maar heb geen idee hoe ik dit zou moeten doen
 
Vincent Huisman

Vincent Huisman

22/08/2011 23:01:26
Quote Anchor link
bump
 
Elwin - Fratsloos

Elwin - Fratsloos

22/08/2011 23:28:14
Quote Anchor link
Ik snap het niet; je zegt dat je het niet met JS wilt doen en vervolgens gebruik je JS.

Maar goed. Roepen dat er iets fout gaat helpt natuurlijk niet, want _wat_ gaat er fout. Geef bijvoorbeeld een foutmelding die in de debug-console van je browser staat.

Wat ik gok dat er fout gaat: de pagina die je opent via AJAX geeft geen JSON als resultaat.
Gewijzigd op 22/08/2011 23:29:21 door Elwin - Fratsloos
 
Vincent Huisman

Vincent Huisman

22/08/2011 23:30:56
Quote Anchor link
Ik heb pagina 1, vanaf daar run ik een ajax request naar pagina 2. Nu wil ik op pagina 2 een header location doen. Alleen werkt dit niet. Ik kan wel op pagina 2 een url terug sturen naar pagina 1 maar dat kan de gebruiker aanpassen.

Er zijn dus ook geen errors, anders had ik die wel gepost :)
Gewijzigd op 22/08/2011 23:31:24 door Vincent Huisman
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

23/08/2011 07:04:29
Quote Anchor link
Is dit wat je zoekt
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Javascript:
function CheckAndSend(f) {
    var isError = false;
    var errMsg = "";
    var el = document.getElementById("errMsg");
    el.style.visibility = "hidden";
    if (f.elements["username"].value == "") {
        isError = true;
        errMsg = "Je moet een gebruikersnaam invullen!";
    }
    if (f.elements["wachtwoord"].value == "") {
        if (isError) {
            errMsg += "<br />"
        }
        errMsg += "Je moet een wachtwoord invullen";
        isError = true;
    }
    if (isError) {
        
        el.innerHTML = errMsg;
        el.style.visibility = "visible";
    }
    else {
        var s = "";
        for (i = 0; i < f.elements.length; i++) {
            if (f.elements[i].value != "") {
                s += f.elements[i].name + "=" + encodeURI(f.elements[i].value);
                if (i < f.elements.length - 1) { s += "&" }
            }
        }
        
        doc = getHTTPObject();
        doc.onreadystatechange = function(){
            if (doc.readyState == 4 && doc.status==200) {
                s = doc.responseText;
                xa = s.indexOf("errMsg");
                if (xa > -1)
                    document.getElementById("errMsg").innerHTML = s;
                else
                    AjaxPage(s, f.parentNode.id);
            }
        }
        doc.open("POST", "/include/login.php", true);
        doc.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
        doc.send(s);
    }
}
PHP:
<?php
..... //de sql etc.
if (fout)
echo '<errMsg>Foutmelding</errMsg>';
else
echo '(link)";
?>

getHttpObject(retourneerd XMLHttpRequest of ActiveX) en AjaxPage(laad Ajax content) zijn functies die je zelf moet toevoegen!
Gewijzigd op 23/08/2011 11:13:47 door Ger van Steenderen
 
Vincent Huisman

Vincent Huisman

23/08/2011 07:09:15
Quote Anchor link
denk het niet, het gaat mij puur om het doorsturen. ik doe vanaf pagina 1 een request naar pagina 2, en de gebruiker moet doorgestuurd worden. Alleen mag de gebruiker de url niet kunnen veranderen. Daarom dacht ik aan een header location op pagina 2, alleen werkt dat niet
 
Jacco Brandt

Jacco Brandt

23/08/2011 10:39:02
Quote Anchor link
Probeer om de link door te sturen vanuit php, en in javascript naar de waarde van deze variabele door te sturen.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

23/08/2011 11:09:21
Quote Anchor link
@Vincent
Maar waarom dan AJAX?
Imo een beetje overbodig.
Maar goed, het is ook niet zo moeilijk, je echoed vanuit je phpscript de url (niets anders!) en het Javascript zet top.window.href.location = doc.responseText
 
Vincent Huisman

Vincent Huisman

23/08/2011 12:44:47
Quote Anchor link
omdat ik met een chat bezig ben en ik wil dat inactieve personen uitloggen. maar een gebruiker moet dus niet even de javascript aanpassen en dan altijd inactief kunnen blijven. maar ik heb al een idee
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.