Javascript重定向在php if else语句中

时间:2017-09-30 11:57:21

标签: javascript php

我有以下javascript函数:

 function pageRedirect() {
     window.location.replace("ProdTypes.php");
 }
 setTimeout("pageRedirect()", 3000);

在PHP if else语句中(见下文):

if($ptRowCount > 0) :
            if ($ptQTYRowCount > 0):
                $errors[]='Cannot delete or Archive product which has a Product Quantity > 0!!! Refreshing Page in 3 seconds...';
                ?>
                <script>
                    pageRedirect();
               </script>
                <?php 
                elseif($ptQTYRowCount == 0):
                $sql = "UPDATE producttype SET ProdTypeArchive='1' WHERE ProductTypeID = '$delete_id'";
                $_SESSION['success_flash']='Product Type was Archived succesfully';
            endif;
        else:
             $sql = "DELETE FROM producttype WHERE ProductTypeID = '$delete_id'";
             $_SESSION['success_flash']='Product Type was deleted succesfully';
        endif;

我要求javascript计数器仅在if ($ptQTYRowCount > 0):

的if语句中生效

目前,即使没有触发if语句,它也正在重写页面。

任何人都可以帮忙吗?

P.S。我不想使用Header进行重定向。当我使用标题时,我有以下错误:

  

警告:无法修改标头信息 - 已在C:\ xampp \ htdocs \ aresV2 \ admin \ ProdTypes中发送的标头(输出从C:\ xampp \ htdocs \ aresV2 \ admin \ includes \ navigation.php:48开始)第51行的.php

1 个答案:

答案 0 :(得分:0)

您的问题尚不清楚,但如果您在页面中包含整个代码块(函数+ setTimeout语句),则会导致页面在3秒后重新加载。

解决方案是删除setTimeout行,并在if语句中替换

?>
<script>
    pageRedirect();
</script>
<?php

?>
<script>
    setTimeout("pageRedirect", 3000);
</script>
<?php

至于尝试使用标头重定向时出现的错误,这里的answered before就是这样的