2012-10-08 4 views
0

내가 한 스크립트로 문제가 발생했습니다.Javascript 실행이 PHP 실행을 중단하지 않는 이유는 무엇입니까?

다음은 전체 스크립트입니다. 그러나 문제는 단지 2 라인에 관한 것이다.

실제로 나는 그것이 존경한다면 경고를 표시해야하는 경우 PHP 조건을 가지고 있으며, 다음 스크립트를 실행해야합니다.

그리고 마지막에는 사용자가 이전 페이지로 돌아갈 수 있도록 헤더 위치가 있습니다.

것은 경고를 표시하지 않으며 직접 사용자를 되돌아 가게한다는 것입니다. 스크립트를 계속 진행하기 위해 사용자가 '확인'을 클릭하게하고 싶습니다. 내가 할 수있는 방법이 있을까?

<?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

어떤이 줄을

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

물론, 헤더 위치를 제거 : 내가 당신이라면

, 나는이 줄을 수정하고이를 추가? 당신이 당신의 스크립트를 최소한의 버전으로 제공 할 수 있다면, 관련없는 모든 것을 제거 할 수 있다면 더 쉽습니다! – Sirko

+0

어떤 라인이 문제입니까? 'if (donnees [ 'date-fin'] == 날짜 ('Y-m-d'))'줄입니까? –

+0

첫 번째 줄은 다음과 같이 유감스럽게 생각합니다. ($ donnees [ 'date_fin'] == date ('Ym-d')) { echo " "; } 그리고 마지막에 헤더 위치가 포함됩니다. –

답변

1

자바 스크립트는 PHP 실행을 멈출 수 없습니다! 자바 스크립트는 클라이언트 측 (브라우저)에서 실행되고 PHP는 서버에서 실행됩니다. 당신이 헤더 ('Location :'. $ _SERVER [ 'HTTP_REFERER']); , 그것은 항상 거기에서 당신을 방향 전환 할 것입니다. ..

+0

좋아요, 그렇다면 임시 변통을 만들 방법이 없다는 뜻입니까? –

+0

네, 할 수 있습니다. 내가 잘 이해했다면, 사용자는 경고 후 리디렉션되기를 원합니다. 맞습니까? 나는 내 대답을 편집했다;) –

+0

예 경고 후, 경고가 없으면, 스크립트 실행 후 –

관련 문제