2016-09-29 14 views
-2

私はすでに答えを探しましたが、私はPHPから警告を得る方法を理解しています。この特定のコードについて私が間違っていることは分かりません。
私はif文を追加するまでこれを動作させました。cant echo javascript alert from php

if ($errors) { 
     echo "<script type='text/javascript'>"; 
     echo "alert('Records Were Uploaded');"; 
     echo "window.location.href = 'EmployeePicker.php';"; 
     echo "</script>"; 
    } else { 
     echo "<script type='text/javascript'>"; 
     echo "alert('There was a problem with your file');"; 
     echo "window.location.href = 'csvUpload.php';"; 
     echo "</script>"; 
    } 

ちょうどいいときはうまくいった。

 echo "<script type='text/javascript'>"; 
     echo "alert('Records Were Uploaded');"; 
     echo "window.location.href = 'EmployeePicker.php';"; 
     echo "</script>"; 

コメントすべてが出て、ちょうど行う場合

 echo "<script type='text/javascript'>"; 
     echo "alert('There was a problem with your file');"; 
     echo "window.location.href = 'csvUpload.php';"; 
     echo "</script>"; 

これは動作しません。私は困惑している。 2番目のアラートが機能しない理由は理解できません。

上記のif文では、最初のアラートが機能しますが、それは発動できない2番目のアラートです。

ご迷惑をおかけして申し訳ありませんが、$エラーはブールです。それが本当であれば、filwはアップロードされ、falseの場合はアップロードされませんでした。

+1

Javascriptコンソールでエラーがないか確認してください。 – Barmar

+0

私はあなたのコードを試して、それは正常に働いた。問題は他の場所にあるか、正しくコピーされていません。 – Barmar

+0

私は@ Barmarに同意します。私のコードはうまく動作します。あなたの '$ errors'変数のあいまいな性質以外(trueの場合、/ /エラーを示しています - それはあなたが物事が大丈夫だと言うページに連れて行きます)、すべてうまくいきます。おそらく '$ errors'変数がどのように設定されているかを示すことができますか? –

答えて

0

私はあなたが望むものの反対をしていると思います。 あなたのケースが内部で実行されたアクションと一致しません。 たぶん、あなたが行う必要があります。

if (!$errors) { 
     echo "<script type='text/javascript'>"; 
     echo "alert('Records Were Uploaded');"; 
     echo "window.location.href = 'EmployeePicker.php';"; 
     echo "</script>"; 
    } else { 
     echo "<script type='text/javascript'>"; 
     echo "alert('There was a problem with your file');"; 
     echo "window.location.href = 'csvUpload.php';"; 
     echo "</script>"; 
    } 

をし、あなたもecho言葉上に保存することができます - そしてそれをより読みやすく - のようなSTHをやって:

echo <<<HTML 
<script type='text/javascript'> 
    alert('Records Were Uploaded'); 
    window.location.href = 'EmployeePicker.php'; 
</script> 
HTML; 

したいだけの場合:)


[編集] $errorsのホールド(整数または配列のいずれか)によって、エラーがないことを確認することができます。!$errors int例えば配列の場合は!count($errors)です。


[EDIT]スタンドアロン

ように、コードの2番目の部分をしようとあなたは間違っているものをトレースする必要がある場合は、少しずつ隔離する必要があります! 最初にcode 1を新しいPHPファイルとして試してください。システム上で警告とリダイレクトが行われない場合は、configsに何か問題があります。 コードロジックで何か問題がある場合は、 私も最初の1か0

コード1

<?php 
$errors = 1; 

    echo "<script type='text/javascript'>"; 
    echo "alert('There was a problem with your file');"; 
    echo "window.location.href = 'csvUpload.php';"; 
    echo "</script>"; 

?> 

コード2

<?php 
$errors = 1; 
if ($errors) { 
     echo "<script type='text/javascript'>"; 
     echo "alert('Records Were Uploaded');"; 
     // echo "window.location.href = 'EmployeePicker.php';"; 
     echo "</script>"; 
    } else { 
     echo "<script type='text/javascript'>"; 
     echo "alert('There was a problem with your file');"; 
     // echo "window.location.href = 'csvUpload.php';"; 
     echo "</script>"; 
    } 
?> 

そして、あなたの$errors程度に$errors VARを設定することにより、無PBでcode 2を実行できますvar、trueの場合はエラーがないことを意味しますが、それを$uploadSuccessfulのように扱いにくくする必要があります。 ;)

+0

はい、彼は 'if'を後方に持っています。しかし、問題は、もし 'if'を完全に取り除くと、エコーの2番目のブロックが失敗するということです。だから別の問題があります。 – Barmar

+0

@Barmar、私たちが答えたので質問は編集されました。答えは正確ではないかもしれません。私は後でチェックします:) – antoni

+0

編集は "Sorry"で始まる行です。コードではありません。 – Barmar

0

エコーがうまくいっているはずです。あなたのPHPエラーログファイルを調べてそこに問題の手掛かりがあるかどうかを調べてみてください。

ロジックを少し切り離すのに役立つかもしれない私の個人的な好みのほんの少しです。下記を参照してください。

<?php 

// STATUS 
$errors = true; 

// OUTPUTS 
$upload_success = "<script type='text/javascript'>"; 
    $upload_success .= "alert('Records Were Uploaded');"; 
    $upload_success .= "window.location.href = 'EmployeePicker.php';"; 
$upload_success .= "</script>"; 

$upload_fail = "<script type='text/javascript'>"; 
    $upload_fail .= "alert('There was a problem with your file');"; 
    $upload_fail .= "window.location.href = 'csvUpload.php';"; 
$upload_fail .= "</script>"; 

//LOGIC 
if ($errors) { 
    echo $upload_success; 
} else { 
    echo $upload_fail; 
} 

?>