2016-10-19 4 views
0

私のPHPフォームは正常に動作しているようです。ページが表示され、送信ボタンをクリックすると、最初のisset($ _ POST ['submitted'])条件がヒットし、コードが実行されます。PHPフォームでechoを使用できません

唯一の問題は、JSアラートボックスを生成するコードにエコー行が2つあることです。どちらも呼ばれていないようです。返される値をテストする方法がないため、外部PHP関数が呼び出されているかどうかはわかりません。

この

<?php if (isset($_POST['submitted'])) { 
$output = checkData(); 
if ($output != "done") 
{ 
    echo '<script type="text/javascript">alert("' . $output . '"); </script>'; 
} 
else 
{ 
    createMeeting(); 
    echo '<script type="text/javascript">alert("You meeting has been created. All of the recipients should shortly receive an email"); </script>'; 
    header('Location: index.php'); 
} 
} else { ?> 
<center> 
<form method="POST" action=""> 
... 
<input type="submit" name="submitted" value="Create Meeting"> 
</form> 
<?php 
} 
?> 

マイCHECKDATA()関数は、単に場合、フォームデータの他の部分は、「完了」(エラーなし)またはメッセージのいずれかで、空と出口であるかどうかをチェックするように私のPHPが見えますフォーム要素の1つは空です。

createMeeting()は、データに基づいて会議を作成し、それを自分のサーバーに送信します。現在は、checkData()と同じデータを取得してから戻ります。

オンラインのPHPコードチェッカーで実行すると、両方の関数がエラーなく戻ります。

+0

入れ 'エコー「 '; '' $ output = checkData(); 'の後に' $ output'の値を教えてください。 – Irvin

+0

サーバが解析してページを提供した後もPHPは動作し続けますか? – theonlygusti

+0

あなたのPHPコードが間違っているように見えます。 –

答えて

0

あなたのコードを試しましたが、私の場合はうまくいくようです。

<?php if (isset($_POST['submitted'])) { 
$output = "done"; //even if this line is not equal to 'done', the code still works fine 
if ($output != "done") 
{ 
    echo '<script type="text/javascript">alert("' . $output . '");</script>'; 
} 
else 
{ 
    // createMeeting(); 
    echo '<script type="text/javascript">alert("You meeting has been created. All of the recipients should shortly receive an email"); </script>'; 
    // header('Location: index.php'); 
} 
} else { ?> 
    <center> 
    <form method="POST" action=""> 
    ... 
    <input type="submit" name="submitted" value="Create Meeting"> 
    </form> 
<?php 
} 
?> 

私の知るところでは、createMeeting()またはcheckData()関数にエラーがあります。エラーメッセージ(もしあれば)を具体的に記述できますか?

+0

はエラーメッセージが送信されていません。 checkDataのソースは次の場所にあります:http://pastebin.com/W9SJDHmZ - 私はrequire_once( 'checkData.php')を持っています。ファイル – Nodoid

+0

の一番上に、上記のコードの3行目に '$ output'をエコーし​​ましたか? – Pragun

+0

はい - 何も表示されません – Nodoid

0

php.iniを確認してください。エラーを表示または非表示に設定していますか?チェックデータにエラーが発生した可能性があり、警告なしで死亡した可能性があります。

+0

それはエラーを表示します(少なくとも、それらのいくつかを表示します) - 私のWebホスティングでは、私は本当に多くのレベルを制御していないエラー – Nodoid

0

アラートボックスをポップアップしてリダイレクトしたい場合は、それを行う適切な方法ではありません。

注:アラートボックスは、ページを表示する前にリダイレクトされるため、実行も表示もされません。それを行うための最善の方法では、JavaScriptに代わり

<script> 
// this function pop up and redirect your page after closing the alert box 
function PopupThenRedirect() { 
    // pop up the alert box 
    alert("You meeting has been created. All of the recipients should shortly receive an email"); 
    // redirect your page 
    location.href = '/index.php'; 
} 
</script> 

<?php if (isset($_POST['submitted'])) { 
$output = checkData(); 
if ($output != "done") 
{ 
    echo '<script type="text/javascript">alert("' . $output . '"); </script>'; 
} 
else 
{ 
    createMeeting(); // make sure this php function exist or else it leads to error 
    echo '<script type="text/javascript"> PopupThenRedirect(); </script>'; 
} 
} else { ?> 
<center> 
<form method="POST" action=""> 
... 
<input type="submit" name="submitted" value="Create Meeting"> 
</form> 
<?php 
} 
?> 
関連する問題