4

スクリプトを実行してからリダイレクトしたいボタンがありますが、何も起こりません

同様のコードを使用し、機能する別のページがあります。しかし、これは機能していません

動作するコード:

<a href="javascript:void(0);" onclick='$.get("features.php",{ cmd: "confirm_order", id: "<?php echo $o_id; ?>", name: "<?php echo $_SESSION['user_name']; ?>" email: "<?php echo $_SESSION['user_email']; ?>"};setTimeout("window.location.href=order.php?order_id=<?php echo $o_id;?>", 100);' class="button">

別のページで既に動作するコード:

<a href="javascript:void(0);" onclick='$.get("features.php",{ cmd: "remove", id: "<?php echo $o_id; ?>", prod: "<?php echo $row_prod['prod_id']; ?>" });setTimeout("window.location.href=window.location.href", 100);'>

今、私はそれが私のsetTimeoutに関係していることを知っています.私は何が間違っているのか分かりません.

編集

今すぐリンク:

<a href="javascript:void(0);" class="button confirm">Confirm</a>

リンクの下のコード:

<script type="text/javascript">
$('a .confirm').on('click',function(e){
    $.get("features.php",{
        cmd: "confirm_order",
        id: "<?php echo $o_id; ?>",
        name: "<?php echo $_SESSION['user_name']; ?>",
        email: "<?php echo $_SESSION['user_email']; ?>"
    });
    setTimeout(
        function(){
            window.location = "order.php?order_id=<?php echo $o_id;?>" 
        },
    100);
});
</script>

これはまだ機能しておらず\"、コードでをレンダリングしています

4

3 に答える 3

6

html 属性にそれほど多くのコードを追加するべきではないという Felix Kling のコメントに同意します。jQuery を使用しているようですが、これを JavaScript コードに追加してみませんか。

$('a .button').on('click',function(e){
    $.get("features.php",{ 
          cmd: "confirm_order",
          id: "<?php echo $o_id; ?>",
          name: "<?php echo $_SESSION['user_name']; ?>", // you were missing this comma 
          email: "<?php echo $_SESSION['user_email']; ?>"
        }).done(function(){
             window.setTimeout( function(){
                 window.location = "order.php?order_id=<?php echo $o_id;?>";
             }, 100 );
        }); // you where missing this parenthesis          

  e.preventDefault(); 
});
于 2012-08-14T21:34:58.680 に答える
2

ファイル名を間に入れてみてください"( を使用してエスケープできます\"):

setTimeout("window.location.href=\"order.php?order_id=<?php echo $o_id;?>\";", 100);

ファイル名は文字列です。それ以外の場合、JavaScript は変数を期待します。それが機能する理由setTimeout("window.location.href=window.location.href;", 100);です。

コンマが1つ足りないと思います:

name: "<?php echo $_SESSION['user_name']; ?>" email: "<?php echo $_SESSION['user_email']; ?>"

する必要がありますname: "<?php echo $_SESSION['user_name']; ?>", email: "<?php echo $_SESSION['user_email']; ?>"

また、括弧がありません。コードを次のように変更してみてください。

<a href="javascript:void(0);" onclick='$.get("features.php",{ cmd: "confirm_order", id: "<?php echo $o_id; ?>", name: "<?php echo $_SESSION['user_name']; ?>", email: "<?php echo $_SESSION['user_email']; ?>"});setTimeout("window.location.href=\"order.php?order_id=<?php echo $o_id;?>\";", 100);return false;' class="button">
于 2012-08-14T21:27:30.147 に答える
2

これを試してください

<script type="text/JavaScript">
redirectTime = "1500";
redirectURL = "http://www.natural-environment.com";
function timedRedirect() {
    setTimeout("location.href = redirectURL;",redirectTime);
}
</script>
于 2014-03-12T05:32:00.057 に答える