2016-09-29 2 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>"; 

это не будет работать. Я весьма озадачен. Не имеет смысла, почему второе предупреждение не работает.

Я забыл упомянуть. В заявлении if первое предупреждение будет работать, это второе предупреждение, что я не могу стрелять.

Извините за путаницу, ошибка $ bool. Если это правда, файл был загружен, если false, это не так.

+1

Проверьте ошибки на Javascript-консоли. – Barmar

+0

Я пробовал ваш код, он работал нормально. Проблема в другом месте, или вы не скопировали ее правильно. – Barmar

+0

Я согласен с @Barmar, что ваш код работает отлично для меня. Помимо двусмысленного характера вашей переменной '$ errors' (если true - указывая там/are/errors - это приведет вас к странице, говорящей, что все в порядке), все работает нормально. Возможно, вы можете показать, как установлена ​​переменная '$ errors'? –

ответ

0

Я думаю, что вы делаете противоположное тому, что вы хотите: Ваш случай if не соответствует действию, выполняемому внутри. Может быть, вы должны сделать:

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 слов - и сделать его более удобным для чтения - делать как н:

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

только если вы хотите :)


[EDIT] Обратите внимание, что в соответствии с тем, что $errors hold (либо целое число, либо массив), вы можете проверить, нет ли ошибки !$errors, если int eger или !count($errors) если массив.


[EDIT] Попытка свой второй кусок кода в качестве автономного

Если вам нужно проследить, что это неправильно, то вы должны изолировать по кусочкам! сначала попробуйте code 1 в качестве нового файла php, если он не предупреждает и не перенаправляет вашу систему, тогда что-то не так в ваших конфигурациях. Если в вашей логике кода что-то не так, что-то не так. Я мог бы также работать code 2, без пб на первой установке $errors вар к 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 var, если true означает ошибку, вы обязательно должны переименовать ее в sth менее сложно, например, $uploadSuccessful. ;)

+0

Да, у него есть 'if' назад. Но в этом вопросе говорится, что второй блок эхо-сигналов терпит неудачу, когда он полностью вынимает «если». Так что есть другая проблема. – Barmar

+0

@Barmar, вопрос редактировался, так как мы ответили. ответ может быть неточным сейчас. Я проверю позже :) – antoni

+0

Редактирование - это только строка, начинающаяся с «Извините». Не какой-либо код. – 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; 
} 

?>