2012-10-08 161 views
0

我遇到了麻煩,我已經完成了一個腳本。爲什麼JavaScript執行不會停止PHP執行?

這是整個腳本。但麻煩只涉及兩條線。

事實上,我有一個PHP條件,如果它受到尊重,它應該顯示一個警告,如果沒有,它應該執行下面的腳本。

並在最後我有一個標題位置,使用戶回到上一頁。

事情是它不顯示警報,它直接讓用戶回去。我想讓用戶點擊'OK'以使腳本繼續。有沒有辦法可以做到這一點?

<?php 
$sql="SELECT SUM(montant) as montantfactures, n_doss 
     FROM `factures` 
     WHERE `n_doss`='".mysql_real_escape_string($_GET['n_doss'])."' 
     GROUP BY `n_doss`"; 

$result=mysql_query($sql) or die; 
while($data=mysql_fetch_assoc($result)) 
{ 
    $rqt="SELECT `interets`.*, 
       `les_taux`.*, 
       `decompte`.`principal_s` 
      FROM `interets` 
      INNER JOIN `les_taux` ON `interets`.`type`=`les_taux`.`type` 
      INNER JOIN `decompte` ON `interets`.`n_doss`=`decompte`.`n_doss` 
      WHERE `interets`.`n_doss`='".$data['n_doss']."' 
      GROUP BY `date_modif` DESC 
      LIMIT 1"; 
    $resultat=mysql_query($rqt) or die; 
    $donnees=mysql_fetch_assoc($resultat); 

    {$datefin=$donnees['date_fin'];} 
    $datedepart=$donnees['date_depart']; 
    if($donnees['date_fin']==date('Y-m-d')) 
    { 
     echo "<script type=\"text/javascript\">alert(\"les interets sont deja a jour\")</script>"; 
    } 
    else 
    { 
     if($donnees['type']=='tc') 
     { 

      if($donnees['montant']==0) 
      { 

       $taux=($donnees['valeur']*1); 
       $nbjours=round((strtotime($datefin) - strtotime($datedepart))/(60*60*24)-1); 
       $interets=(($data['montantfactures']-$donnees['principal_s'])*$nbjours*$taux)/(365*100); 
       $nouveauinterets=$donnees['montant']+$interets ; 
       $itc="UPDATE `interets` SET 
        montant  = '".$nouveauinterets."', 
        date_fin= NOW() WHERE n_doss='".$donnees['n_doss']."' 
        "; 
       $rtq = mysql_query($itc) or die(__LINE__.mysql_error().$itc); 
       echo "<img src='images/tick_48.png' width='24'> Int&eacute;r&ecirc;ts correctement mis &agrave; jour pour le dossier n&deg;".$donnees['n_doss'].'<br>' ; 


      } 

      else 
      { 

       $taux=($donnees['valeur']*1); 
       $nbjours=round((strtotime($datefin) - strtotime($datedepart))/(60*60*24)-1); 
       $interets=(($data['montantfactures']-$donnees['principal_s'])*1*$taux)/(365*100); 
       $nouveauinterets=$donnees['montant']+$interets ; 
       $itc="UPDATE `interets` SET 
        montant  = '".$nouveauinterets."', 
        date_fin= NOW() WHERE n_doss='".$donnees['n_doss']."'"; 
       $rtq = mysql_query($itc) or die(__LINE__.mysql_error().$itc); 
       echo "<img src='images/tick_48.png' width='24'> Int&eacute;r&ecirc;ts correctement mis &agrave; jour pour le dossier n&deg;".$donnees['n_doss'].'<br>' ; 

      } 
     } 
     elseif($donnees['type']=='tleg') 
     { 

      if($donnees['montant']==0) 
      { 
       if($donnees['operateur']=="x") 
       { 
        $taux=($donnees['valeur']*$donnees['variable']); 
        $nbjours=round((strtotime($datefin) - strtotime($datedepart))/(60*60*24)-1); 
        $interets=(($data['montantfactures']-$donnees['principal_s'])*$nbjours*$taux)/(365*100); 
        $nouveauinterets=$donnees['montant']+$interets ; 
        $itc="UPDATE `interets` SET 
        montant  = '".$nouveauinterets."', 
        date_fin= NOW() WHERE n_doss='".$donnees['n_doss']."'"; 
        $rtq = mysql_query($itc) or die(__LINE__.mysql_error().$itc); 
        echo "<img src='images/tick_48.png' width='24'> Int&eacute;r&ecirc;ts correctement mis &agrave; jour pour le dossier n&deg;".$donnees['n_doss'].'<br>' ; 
       } 
       elseif($donnees['operateur']=="+") 
       { 
        $taux=($donnees['valeur']+$donnees['variable']); 
        $nbjours=round((strtotime($datefin) - strtotime($datedepart))/(60*60*24)-1); 
        $interets=(($data['montantfactures']-$donnees['principal_s'])*$nbjours*$taux)/(365*100); 
        $nouveauinterets=$donnees['montant']+$interets ; 
        $itc="UPDATE `interets` SET 
        montant  = '".$nouveauinterets."', 
        date_fin= NOW() WHERE n_doss='".$donnees['n_doss']."'"; 
        $rtq = mysql_query($itc) or die(__LINE__.mysql_error().$itc); 
        echo "<img src='images/tick_48.png' width='24'> Int&eacute;r&ecirc;ts correctement mis &agrave; jour pour le dossier n&deg;".$donnees['n_doss'].'<br>' ; 
       } 
      } 
      else 
      { 
       if($donnees['operateur']=="x") 
       { 
        $taux=($donnees['valeur']*$donnees['variable']); 
        $nbjours=round((strtotime($datefin) - strtotime($datedepart))/(60*60*24)-1); 
        $interets=(($data['montantfactures']-$donnees['principal_s'])*1*$taux)/(365*100); 
        $nouveauinterets=$donnees['montant']+$interets ; 
        $itc="UPDATE `interets` SET 
        montant  = '".$nouveauinterets."', 
        date_fin= NOW() WHERE n_doss='".$donnees['n_doss']."'"; 
        $rtq = mysql_query($itc) or die(__LINE__.mysql_error().$itc); 
        echo "<img src='images/tick_48.png' width='24'> Int&eacute;r&ecirc;ts correctement mis &agrave; jour pour le dossier n&deg;".$donnees['n_doss'].'<br>' ; 
       } 
       elseif($donnees['operateur']=="+") 
       { 
        $taux=($donnees['valeur']+$donnees['variable']); 
        $nbjours=round((strtotime($datefin) - strtotime($datedepart))/(60*60*24)-1); 
        $interets=(($data['montantfactures']-$donnees['principal_s'])*1*$taux)/(365*100); 
        $nouveauinterets=$donnees['montant']+$interets ; 
        $itc="UPDATE `interets` SET 
        montant  = '".$nouveauinterets."', 
        date_fin= NOW() WHERE n_doss='".$donnees['n_doss']."'"; 
        $rtq = mysql_query($itc) or die(__LINE__.mysql_error().$itc); 
        echo "<img src='images/tick_48.png' width='24'> Int&eacute;r&ecirc;ts correctement mis &agrave; jour pour le dossier n&deg;".$donnees['n_doss'].'<br>' ; 

       } 
      } 
     } 
     elseif($donnees['type']=='tbce') 
     { 

      if($data['montantfactures']==0) 
      { 
       if($donnees['operateur']=="x") 
       { 
        $taux=($donnees['valeur']*$donnees['variable']); 
        $nbjours=round((strtotime($datefin) - strtotime($datedepart))/(60*60*24)-1); 
        $interets=(($data['montantfactures']-$donnees['principal_s'])*$nbjours*$taux)/(365*100); 
        $nouveauinterets=$donnees['montant']+$interets ; 
        $itc="UPDATE `interets` SET 
        montant  = '".$nouveauinterets."', 
        date_fin= NOW() WHERE n_doss='".$donnees['n_doss']."'"; 
        $rtq = mysql_query($itc) or die(__LINE__.mysql_error().$itc); 
        echo "<img src='images/tick_48.png' width='24'> Int&eacute;r&ecirc;ts correctement mis &agrave; jour pour le dossier n&deg;".$donnees['n_doss'].'<br>' ; 
       } 
       elseif($donnees['operateur']=="+") 
       { 
        $taux=($donnees['valeur']+$donnees['variable']); 
        $nbjours=round((strtotime($datefin) - strtotime($datedepart))/(60*60*24)-1); 
        $interets=(($data['montantfactures']-$donnees['principal_s'])*$nbjours*$taux)/(365*100); 
        $nouveauinterets=$donnees['montant']+$interets ; 
        $itc="UPDATE `interets` SET 
        montant  = '".$nouveauinterets."', 
        date_fin= NOW() WHERE n_doss='".$donnees['n_doss']."'"; 
        $rtq = mysql_query($itc) or die(__LINE__.mysql_error().$itc); 
        echo "<img src='images/tick_48.png' width='24'> Int&eacute;r&ecirc;ts correctement mis &agrave; jour pour le dossier n&deg;".$donnees['n_doss'].'<br>' ; 
       } 
      } 
      else 
      { 

       if($donnees['operateur']=="x") 
       { 
        $taux=($donnees['valeur']*$donnees['variable']); 
        $nbjours=round((strtotime($datefin) - strtotime($datedepart))/(60*60*24)-1); 
        $interets=(($data['montantfactures']-$donnees['principal_s'])*1*$taux)/(365*100); 
        $nouveauinterets=$donnees['montant']+$interets ; 
        $itc="UPDATE `interets` SET 
        montant  = '".$nouveauinterets."', 
        date_fin= NOW() WHERE n_doss='".$donnees['n_doss']."'"; 
        $rtq = mysql_query($itc) or die(__LINE__.mysql_error().$itc); 
        echo "<img src='images/tick_48.png' width='24'> Int&eacute;r&ecirc;ts correctement mis &agrave; jour pour le dossier n&deg;".$donnees['n_doss'].'<br>' ; 
       } 
       elseif($donnees['operateur']=="+") 
       { 
        $taux=($donnees['valeur']+$donnees['variable']); 
        $nbjours=round((strtotime($datefin) - strtotime($datedepart))/(60*60*24)-1); 
        $interets=(($data['montantfactures']-$donnees['principal_s'])*1*$taux)/(365*100); 
        $nouveauinterets=$donnees['montant']+$interets ; 
        $itc="UPDATE `interets` SET 
        montant  = '".$nouveauinterets."', 
        date_fin= NOW() WHERE n_doss='".$donnees['n_doss']."'"; 
        $rtq = mysql_query($itc) or die(__LINE__.mysql_error().$itc); 
        echo "<img src='images/tick_48.png' width='24'> Int&eacute;r&ecirc;ts correctement mis &agrave; jour pour le dossier n&deg;".$donnees['n_doss'].'<br>' ; 
       } 
      } 
     } 
    } 
} 
header('Location: ' . $_SERVER['HTTP_REFERER']); 
?> 
+0

其中2條線?如果你可以提供一個更簡約的腳本版本,並且刪除所有不相關的東西,那將更容易一些! – Sirko

+0

哪一行是問題? 'if(donnees ['date-fin'] == date('Y-m-d'))'line? –

+0

對不起,第一行是javascript if($ donnees ['date_fin'] == date('Ym-d')) { echo「「; },最後一個包含結尾的標題位置 –

回答

1

Javascript無法停止php執行! JavaScript運行在客戶端(瀏覽器),php運行在服務器端。如果你寫頭('Location:'。$ _SERVER ['HTTP_REFERER']); ,它會一直將您重定向到那裏。

如果我是你,我會修改這一行,並添加此:

echo "<script type=\"text/javascript\">alert(\"les interets sont deja a jour\"); window.location = $_SERVER['HTTP_REFERER'] 
</script>"; 

和刪除過程的頭部位置,..

+0

好吧,你的意思是說,沒有辦法做出一種臨時表演? –

+0

是的,你可以做到。如果我理解的很好,你希望用戶在提醒後重定向,對吧?我編輯了我的答案;) –

+0

是警報後,但如果沒有警報,執行腳本後 –