2017-08-23 13 views
0

私はモーダルボックス内のフォームを使用してdbに値を挿入していますが、成功のポップアップを除いてすべて正常に動作します。

クエリが私の質問は、なぜ私の成功のウィンドウが来ていないですか?私は成功

    <?php 
        if (isset($_POST['btn-signup'])) { 
         echo $success; 
        } 
        ?> 

をエコーのindex.phpに続いてfuntions.phpページに

//create account 
if (isset($_POST['btn-signup'])){ 
    $firstname = test_input($_POST['firstname']); 
    $email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL); 
    $pass = test_input($_POST['password']); 
    $cpass = test_input($_POST['confirm_password']); 

    if ($pass == $cpass){ 
     $password = password_hash($pass, PASSWORD_DEFAULT); 

     $signupQuery = "INSERT INTO draadlozeAccount (firstname, email, pass) VALUES 
     ('$firstname','$email','$password')"; 
     $signupResult = $conn->query($signupQuery); 
     if (!$signupResult) { 
      echo $conn->error; 
      $conn->close(); 

     } else { 
      $success = '<div class="notification pos-right pos-bottom col-sm-4 col-md-3" data-animation="from-bottom" data-notification-link="trigger"> 
           <div class="boxed boxed--border border--round box-shadow"> 
            <img alt="avatar" class="image--sm" src="img/logo.png" /> 
            <div class="text-block"> 
             <h5>Success</h5> 
             <p> 
              Your account has been created successfully. You will receive an email soon. 
             </p> 
            </div> 
           </div> 
          </div>'; 
     } 
    } 

} 

を実行しますか何が欠けているのですか

答えて

2

私はあなたのfunction.phpファイル

$_SESSION['success'] = "<div ...... "; 

そして、あなたのindex.php

if (isset($_SESSION['success']){ 
    echo $_SESSION['success']; 
} 

中では、あなたがやろうとしているものと考えているが、私はあなたの中にfunction.php

$_SESSION['success'] = true; 
のようなものをお勧めします

とあなたのindex.php

<?php 
if(isset($_SESSION['success']){ 
    ?> 
    <div ............... your html ...... /> 
    <?php 
} 

signupsuccess

+0

仲間ありがとう、あなたの答えは私のコードを微調整したのに役立ちました。 –

0

可変スコープを認識していますか?変数は現在のページのみに制限されます。セッション変数を使用して状態管理を維持することができます。セッション変数は現在のセッションに制限されています。

} else { 
     $_SESSION['success'] = '<div class="notification pos-right pos-bottom col-sm-4 col-md-3" data-animation="from-bottom" data-notification-link="trigger"> 
          <div class="boxed boxed--border border--round box-shadow"> 
           <img alt="avatar" class="image--sm" src="img/logo.png" /> 
           <div class="text-block"> 
            <h5>Success</h5> 
            <p> 
             Your account has been created successfully. You will receive an email soon. 
            </p> 
           </div> 
          </div> 
         </div>'; 
    } 

と私が見たものから、この

echo $_SESSION['success']; 
+0

こんにちはようsuccess以外の特定の名前を使用し、はい、私はこのことを理解しますが、これはどんな違いがありません。私のフォームは依然として提出されていますが、通知は表示されません。 –

+0

die()またはexit()関数を使用してコードフローを確認してください。あなたは開発者であり、そのような質問はできません。 –

+0

質問はすべてバディを学ぶことに関するものです。質問をすると、問題を整理するのに役立ちました。 –

0

ようにそれを使用し、あなたは不可能である別のファイルに設定された変数を印刷しようとしています。スクリプトの終わりに、すべての宣言が焼き付けられ、ユーザーが次にブラウズするページによって呼び出されるスクリプトのための利用可能なものは何もありません。

IRは、次のページで、あなたのデータは、STIL利用可能な唯一の3方法があります。

  • は、後でそれを取得し、その後、あなたのデータベースに保持されます。
  • HTTP要求をGETまたはPOSTとしてページに送信します。
  • セッションを使用し、$successをセッション変数として$_SESSIONに格納します。
+0

先頭にセッションを開始し、インデックスファイルに$ _SESSION ['success']をエコーし​​ますが、モデルがトリガーされないようなものです。フォームコードを質問に追加しました –

+0

コードには、 '$ success'を別のページに出力しようとします。セッション変数はありません。私はあなたのフォームコードが質問に表示されません。 – ksjohn

0

success-html-code-snippetを別のファイルに配置することもできます。 "success-snippet.inc.html"と入力し、必要に応じて "file_get_contents()"でコンテンツを取得します。上記のようにセッションを好む場合は、以前にセッションを開始する必要があります。

0

あなたはおそらくフォームやAJAX Ajaxコード必要があります:あなたはそれを含めると使用方法を自分で見ることができ

$(document).ready(function(){ 
 
    $("#senden").click(function(){ 
 
\t \t var daten = $('#formular').serialize(); 
 
     $.ajax({ 
 
\t \t \t url: "test.php", 
 
\t \t \t type: 'post', 
 
\t \t \t data: daten, 
 
\t \t \t dataType: 'json', 
 
\t \t \t success: function(result){ 
 
\t \t \t \t $("#result").val(result.passwort); 
 
\t \t \t \t $('#test').html(result.test); 
 
\t \t \t }, 
 
\t \t \t error: function(xhr, status){ 
 
\t \t \t \t console.log('AJAX returned ' + status); 
 
\t \t \t } 
 
\t \t }); 
 
    }); 
 
});

を。

関連する問題