2015-05-07 3 views
0

У меня есть форма, где я прошу пользователя ввести некоторые значения. Затем, используя PHP, я пытаюсь обработать значения, введенные пользователем.Не получать ожидаемые значения при отправке формы

Проблема, с которой я сталкиваюсь, заключается в том, что после того, как пользователь отправил форму, все мои значения установлены на 1 вместо значения, введенного пользователем.

Вот форма:

<form method="post" action="checkOutResult.php"> 
    <p> Transaction #: 
     <input type="text" name="transactionNum" placeholder="Input #"> 
    </p> 
    <table> 
     <tr> 
      <td>Student ID</td> 
      <td>Employee ID</td> 
      <td>Professor ID</td> 
     </tr> 
     <tr> 
      <td> 
       <input type="text" name="studentID" placeholder="7 Digit Student ID"> 
      </td> 
      <td> 
       <input type="text" name="empID" placeholder="7 Digit Employee ID"> 
      </td> 
      <td> 
       <input type="text" name="profID" placeholder="7 Digit Professor ID"> 
      </td> 

     </tr> 
    </table> 
    <table> 
     <tr> 
      <td>Product ID</td> 
     </tr> 
     <tr> 
      <td> 
       <input type="text" name="productID" placeholder="Scan Barcode"> 
      </td> 
     </tr> 
    </table> 

    <center> 
     <table> 
      <tr> 
       <iframe src="http://free.timeanddate.com/clock/i4nrjjak/n179/fn10/fs24/fcb40431/ftb/bas2/bat1/bacfff/pa8/tt0/tw1/td2/th2/tb4" frameborder="0" width="334" height="74"></iframe> 

       <td>CheckOut Date</td> 
       <td>CheckOut Time</td> 
      </tr> 
      <tr> 
       <td> 
        <input type="text" name="checkoutDate" placeholder="YYYY-MM-DD"> 
       </td> 
       <td> 
        <input type="text" name="checkoutTime" placeholder="HH:MM:SS"> 
       </td> 
      </tr> 
     </table> 
    </center> 

    <center> 
     <table> 
      <tr> 
       <td>Due Date</td> 
       <td>Due Time</td> 
      </tr> 
      <tr> 
       <td> 
        <input type="text" name="dueDate" placeholder="YYYY-MM-DD"> 
       </td> 
       <td> 
        <input type="text" name="dueTime" placeholder="HH:MM:SS"> 
       </td> 
      </tr> 
     </table> 
    </center> 

    <input type="submit" name="Submit" value="submit"> 
</form>   

Это PHP-код, который выполняется после отправки формы.

<?php 

include ("thesis.php"); 

$transactionNum = isset($_POST['transactionNum']); 
$studentID = isset($_POST['studentID']); 
$empID = isset($_POST['empID']); 
$profID = isset($_POST['profID']); 
$productID = isset($_POST['productID']); 
$checkoutDate = isset($_POST['checkoutDate']); 
$checkoutTime = isset($_POST['checkoutTime']); 
$dueDate = isset($_POST['dueDate']); 
$dueTime = isset($_POST['dueTime']); 

$query = "INSERT INTO Transactions(transactionNum, studentID, empID, profID, productID, checkoutDate, checkoutTime, dueDate, dueTime) 
    VALUES ('$transactionNum', '$studentID', '$empID', '$profID', '$productID', '$checkoutDate', '$checkoutTime', '$dueDate', '$dueTime')"; 

if($link->query($query) === TRUE){ 
    echo "New Record Created Successfully. "; 
    echo"<br>"; 
} 

else{ 
    echo" Error: " .$query ."<br>" .$link->error; 
} 

echo"<br>"; 
echo "Transacton #: ".$transactionNum; 
echo"<br>"; 
echo "Student ID: ".$profID; 
echo"<br>"; 
echo "Employee ID: ".$empID; 
echo"<br>"; 
echo "Professor ID: ".$profID; 
echo"<br>"; 
echo "Product ID: ".$productID; 
echo"<br>"; 
echo "Out Date: ".$checkoutDate; 
echo"<br>"; 
echo "Out Time: ".$checkoutTime; 
echo"<br>"; 
echo "Due Date: ".$dueDate; 
echo"<br>"; 
echo "Due Time: ".$dueTime; 
echo"<br>"; 
?> 

Почему я получаю 1 сек вместо значений я представить с формой?

ответ

-1

Вы получаете логическое значение для IsSet здесь $empID = isset($_POST['empID']); Именно поэтому он дает вам значение 1, как это значение true в этом случае.

Resolve с if isset($_POST['empID']) {$empID = $_POST['empID'];}

+0

теперь им не получает никакого значения, это пошло от 1 до пустой –

0

Следующая команда Retuns true (1 в виде строки), если поле empID Исеть в данных $_POST.

$empID =isset($_POST['empID']); 

должно быть

$empID = isset($_POST['empID']) ? $_POST['empID'] : ""; 

и так далее.

Это означает: поймать empID из $_POST, если таковой существует, иначе поймать пустую строку. Это короткая версия следующего:

if(isset($_POST['empID'])) { 
    $empID = $_POST['empID']; 
} else { 
    $empID = ""; 
} 
+0

не помогает, теперь его пустые –

+0

@JhonnyUrgiles, если он пустой, он не имеет value/Поле 'empID' пуст. Однако это правильный способ получения переменных '$ _POST'. Возможно, сначала вы должны сделать 'print_r ($ _ POST)', чтобы узнать, получили ли вы ожидаемые значения. – steven

Смежные вопросы