2017-01-02 258 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