簡體   English   中英

表單POST之后的PHP重定向

[英]PHP redirect after form POST

我在我的網站上制作了一個下載按鈕,該按鈕會打開一個模態,要求輸入密碼,然后,如果密碼正確,則應將用戶帶到真正的下載位置。 這是我的javascript:

function submit() {

    var postData = $("#passwd").serialize();
    //alert(postData);
    $.ajax({
        type: "POST",
        url: "http://www.redcraft.it/submit.php",
        data: postData,
        success: function(redirect) {
            alert('Submitted')
        }/*,
        error: function() {
            alert('Failure');
        }*/
    });
}

這是我的PHP:

<?php
function redirect() {
    $data = $_POST["postData"];
    if($data == is_null()) {
        echo "Error";
    } else {
        echo "<script>window.open('http://www.google.com/" + $data + "', '_self')</script>";
    }
}
?>

由於header()無法正常工作,因此我在PHP中將echo與js腳本一起使用以嘗試其他重定向方法。 我確定php是正確調用的,因為在函數調用時我添加了一行來創建文件,並且文件正確生成。

請,我需要您的幫助,如果我犯了一些“ noobie”錯誤,請不要殺死我。

編輯:

這是模式的html:

<div class="modal fade bs-modal-sm" tabindex="-1" role="dialog" aria-labelledby="loginModalLabel" aria-hidden="true">
            <div class="modal-dialog modal-mediom">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal">&times;</button>
                        <h4 class="modal-title">Download mondo RedCraft</h4>
                    </div>
                    <div class="modal-body">
                        <p>Per scaricare il mondo della redcraft inserisci la password che trovi nel video di presentazione del download!</p>
                        <div class="control-group">
                            <label class="control-label" for="userid">Password:</label>
                            <div class="controls">
                                <input id="passwd" required="" name="passwordinput" type="input" class="form-control input-medium">
                            </div>
                        </div>
                        <div class="control-group">
                            <label class="control-label" for="confirmsignup"></label>
                            <div class="controls">
                                <button id="confirm" onClick="submit()" name="confirmsignup" class="btn btn-primary" data-dismiss="modal">Conferma</button>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>

只需在您的html中添加一個div

<div id="outputredirect"></div>

並在ajax成功中添加以下行或替換為警報

if(redirect == "Error"){
   alert(redirect);
} else {
   jQuery('#outputredirect').html(redirect);
}

您的JavaScript代碼應重定向到php腳本返回的網址:

function submit() {
    var postData = $("#passwd").serialize();
    //alert(postData);
    $.ajax({
        type: "POST",
        url: "http://www.redcraft.it/submit.php",
        data: postData,
        success: function(redirect) {
            location.href(redirect);
        }/*,
        error: function() {
            alert('Failure');
        }*/
    });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM