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

Проблема заключалась в том, что я должен вызвать функцию saveData() с аргументом $ AppID. Мне так жаль всего этого беспорядка. Я работаю над ним на 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

Итак, ваше обновление db не вызвано? Вы получаете какие-либо ошибки? – CUGreen

+0

Ошибок нет. – Bobys