2017-01-02 18 views
0

データベースにレコードがある場合は、phpを使用してチェックするフォームがあります。 データベースにレコードが存在する場合、入力ボックスは自動入力されます。 私はそれをしました、心配はありません。 問題は、入力ボックスのテキストを変更して、入力ボックスの新しい値を取得できない場合です。どうやってやるの?エコー入力フィールドから値を取得

<?php 
$title="Welcome"; 

require("connect.php"); 


session_start(); 

if(isset($_SESSION['CurrentUser'])) { 
    $AppID=$_SESSION['CurrentUser']; 
} 
else{ 
    header("Location: ApplicantLogin.php"); 
} 

$Flag = mysql_query("SELECT EXISTS(SELECT 1 FROM Submission WHERE AppID='$AppID') AS FLAG"); 
$SubmissionDetailSQL=mysql_query("SELECT * FROM Submission WHERE AppID = '$AppID'"); 

function saveData() { 
    if (isset($_POST['QualificationPlace']) && isset($_POST['QualificationType']) && isset($_POST['QualificationInstitution']) && isset($_POST['QualificationMonth']) 
     && isset($_POST['QualificationYear']) && isset($_POST['QualificationSubject']) && isset($_POST['QualificationGrade'])){ 

     $QualificationPlace = $_POST['QualificationPlace']; 
     $QualificationType = $_POST['QualificationType']; 
     $QualificationInstitution = $_POST['QualificationInstitution']; 
     $QualificationMonth = $_POST['QualificationMonth']; 
     $QualificationYear = $_POST['QualificationYear']; 
     $QualificationSubject = $_POST['QualificationSubject']; 
     $QualificationGrade = $_POST['QualificationGrade']; 

     mysql_query("UPDATE Submission SET QualificationPlace='$QualificationPlace', QualificationType='$QualificationType', 
      QualificationInstitution='$QualificationInstitution', QualificationMonth='$QualificationMonth', QualificationYear='$QualificationYear', 
      QualificationSubject='$QualificationSubject', QualificationGrade='$QualificationGrade' WHERE AppID=$AppID"); 
    } 
} 

if (isset($_POST['savebtn'])) { 
    saveData(); 
    header("Location: applicantCase.php"); 
} 
if (isset($_POST['nextbtn'])) { 
    saveData(); 
    header("Location: ApplicantApplyEmployment.php"); 
} 

if (mysql_fetch_array($Flag) == True) { 
    while ($SubmissionDetails=mysql_fetch_array($SubmissionDetailSQL)){ 
     $_SESSION['QualificationPlace']=$SubmissionDetails['QualificationPlace']; 
     $_SESSION['QualificationType']=$SubmissionDetails['QualificationType']; 
     $_SESSION['QualificationInstitution']=$SubmissionDetails['QualificationInstitution']; 
     $_SESSION['QualificationMonth']=$SubmissionDetails['QualificationMonth']; 
     $_SESSION['QualificationYear']=$SubmissionDetails['QualificationYear']; 
     $_SESSION['QualificationSubject']=$SubmissionDetails['QualificationSubject']; 
     $_SESSION['QualificationGrade']=$SubmissionDetails['QualificationGrade']; 
    } 
} 


include("html/applicantsheader.html"); 
include("html/ApplicantApplyQualifications.html"); 
include("html/footer.html"); 
?> 

HTMLコード: "$ _ SESSION [ 'QualificationPlace']。"

<div class="col-sm-4 col-sm-offset-5 col-md-4 col-md-offset-5 main"> 
<h1 class="page-header">Qualifications</h1> 
<form action="ApplicantApplyQualifications.php" method="POST"> 
    <!-- Select Basic --> 
     <fieldset class="form-group"> 
      <label for="Name">Where was the qualification taken?</label> 
      <?php echo "<input type='text' name='QualificationPlace' class='form-control' placeholder=''value=".$_SESSION['QualificationPlace'].">" ;?> 
     </fieldset> 
     <fieldset class="form-group"> 
      <label for="Name">Qualification Type</label> 
      <?php echo "<input type='text' name='QualificationType' class='form-control' placeholder=''value=".$_SESSION['QualificationType'].">" ;?> 
     </fieldset> 
     <fieldset class="form-group"> 
      <label for="Name">Awarding Institution</label> 
      <?php echo "<input type='text' name='QualificationInstitution' class='form-control' placeholder=''value=".$_SESSION['QualificationInstitution'].">" ;?> 
     </fieldset> 
     <fieldset class="form-group"> 
      <label for="Surname">Month/Year</label> 
      <div class="input-group"> 
       <?php echo "<input type='text' name='QualificationMonth' class='form-control' placeholder=''value=".$_SESSION['QualificationMonth'].">" ;?> 
       <span class="input-group-addon">-</span> 
       <?php echo "<input type='text' name='QualificationYear' class='form-control' placeholder=''value=".$_SESSION['QualificationYear'].">" ;?> 
      </div> 
     </fieldset> 
     <fieldset class="form-group"> 
      <label for="Surname">Subject</label> 
      <?php echo "<input type='text' name='QualificationSubject' class='form-control' placeholder=''value=".$_SESSION['QualificationSubject'].">" ;?> 
     </fieldset> 
     <fieldset class="form-group"> 
      <label for="Surname">Grade</label> 
      <?php echo "<input type='text' name='QualificationGrade' class='form-control' placeholder=''value=".$_SESSION['QualificationGrade'].">" ;?> 
     </fieldset> 

    <br> 
     <button type="submit" value="signup" name="savebtn" class="btn btn-primary">Save & Exit</button> 
     <button type="submit" value="signup" name="nextbtn" class="btn btn-primary">Next</button> 
    </form> 
     </div> <!-- /container --> 

問題は=値でなければなりません。しかし、どうすれば違うのですか?

+0

あなたはAjaxのように値をライブにする方法を尋ねていますか?私は少し不明です。いつ、どのように値を変更したいですか? – user1167442

+0

コンセプトは、分割されるフォームを作成することです。各パーツには最後に保存ボタンがあり、ユーザーは今まで入力したフォームの詳細を保存し、後で残りの部分を入力することができます。ユーザーがフォームに戻ると、これらの入力をデータベースからフェッチしたいと思います。私はそれらをフェッチすることができます。しかし、もし私がHTMLコード内のエコーラインを修正したいのであれば、私には許されません。私はそれを変更することはできません定数値のようなものです。 – Bobys

+0

あなたのコードはSQLインジェクションにオープンしています。 [あなたの入力をエスケープする必要があります](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)。 – CUGreen

答えて

0

問題は、$ AppID引数でsaveData()関数を呼び出す必要があります。すべてのその混乱のためにすごくすみませます。私が思うに、11時間連続して私の脳はシャットダウンしています。 皆さん、ありがとうございます。私は数時間それを解決しようとしていたが、私はそれを投稿した後にそのエラーを見たので、再び、私は申し訳ありません。

0

あなたのセッションを設定する場所が問題だと思います。

データを更新するたびにセッションを設定できるように、別の機能を作成します。

<?php 
$title="Welcome"; 

require("connect.php"); 


session_start(); 

if(isset($_SESSION['CurrentUser'])) { 
    $AppID=$_SESSION['CurrentUser']; 
} 
else{ 
    header("Location: ApplicantLogin.php"); 
} 

$Flag = mysql_query("SELECT EXISTS(SELECT 1 FROM Submission WHERE AppID='$AppID') AS FLAG"); 
$SubmissionDetailSQL=mysql_query("SELECT * FROM Submission WHERE AppID = '$AppID'"); 

function saveData() { 
    if (isset($_POST['QualificationPlace']) && isset($_POST['QualificationType']) && isset($_POST['QualificationInstitution']) && isset($_POST['QualificationMonth']) 
     && isset($_POST['QualificationYear']) && isset($_POST['QualificationSubject']) && isset($_POST['QualificationGrade'])){ 

     $QualificationPlace = $_POST['QualificationPlace']; 
     $QualificationType = $_POST['QualificationType']; 
     $QualificationInstitution = $_POST['QualificationInstitution']; 
     $QualificationMonth = $_POST['QualificationMonth']; 
     $QualificationYear = $_POST['QualificationYear']; 
     $QualificationSubject = $_POST['QualificationSubject']; 
     $QualificationGrade = $_POST['QualificationGrade']; 

     mysql_query("UPDATE Submission SET QualificationPlace='$QualificationPlace', QualificationType='$QualificationType', 
      QualificationInstitution='$QualificationInstitution', QualificationMonth='$QualificationMonth', QualificationYear='$QualificationYear', 
      QualificationSubject='$QualificationSubject', QualificationGrade='$QualificationGrade' WHERE AppID=$AppID"); 

     // use new values to set the session details 
     setSessionDetails($_POST); 

    } 
} 
// new function to set the session 
function setSessionDetails($SubmissionDetails) { 
    $_SESSION['QualificationPlace']=$SubmissionDetails['QualificationPlace']; 
    $_SESSION['QualificationType']=$SubmissionDetails['QualificationType']; 
    $_SESSION['QualificationInstitution']=$SubmissionDetails['QualificationInstitution']; 
    $_SESSION['QualificationMonth']=$SubmissionDetails['QualificationMonth']; 
    $_SESSION['QualificationYear']=$SubmissionDetails['QualificationYear']; 
    $_SESSION['QualificationSubject']=$SubmissionDetails['QualificationSubject']; 
    $_SESSION['QualificationGrade']=$SubmissionDetails['QualificationGrade']; 
} 

if (isset($_POST['savebtn'])) { 
    saveData(); 
    header("Location: applicantCase.php"); 
} 
if (isset($_POST['nextbtn'])) { 
    saveData(); 
    header("Location: ApplicantApplyEmployment.php"); 
} 

if (mysql_fetch_array($Flag) == True) { 
    while ($SubmissionDetails=mysql_fetch_array($SubmissionDetailSQL)){ 
     // set the session from db 
     setSessionDetails($SubmissionDetails); 
    } 
} 


include("html/applicantsheader.html"); 
include("html/ApplicantApplyQualifications.html"); 
include("html/footer.html"); 
?> 
+0

動作しません。あなたのコードをありがとう。 – Bobys

+0

データベースの更新が呼び出されないのですか?何かエラーがありますか? – CUGreen

+0

エラーはまったくありません。 – Bobys

関連する問題