Как использовать переключатель с PHP для загрузки определенной информации в мою базу данных? - PullRequest
0 голосов
/ 03 февраля 2020

Я создал форму с HTML / PHP / SQL, где пользователь может либо отправить свою электронную почту в базу данных, либо выбрать переключатель, чтобы отказаться от отправки своей электронной почты вместе с некоторыми другими пользовательскими данными.

Чтобы достичь этого, я написал оператор if / else, однако мой текущий код не работает, и я не могу точно определить правильный синтаксис, который мне следует использовать. Если пользователь выбирает переключатель, я бы хотел, чтобы «Электронная почта недоступна» была вставлена ​​в базу данных, в противном случае введенная пользователем электронная почта вставлена. Спасибо всем за помощь!

  • Обратите внимание, мой код работал нормально, пока я не добавил опцию "нет электронной почты".

HTML файл:

<form id="newStaff" method="POST" action="staffportal.php" enctype="multipart/form-data"> 

   <b><i class="fas fa-user-alt"></i> Full name:</b>  
                <input class="form-control" type="text" id="staffName" name="myStaffName" size="40" maxlength="50"/> 

   //THE RELEVANT CODE 
   <b><i class="fas fa-paper-plane"></i> Email:</b>
    <div class="form-group row">
     <div class="col-xs-4">
      <input class="form-control" type="text" id="staffEmail" name="myStaffEmail" size="40"/> 
      <br>
      <input class="form-check-input" type="radio" name="myStaffNoEmail" id="staffNoEmail" value="option1">
      <label class="form-check-label" for="gridRadios1">
      No available email
      </label>
     </div>
    </div>
    <hr>

   <b>Job title(s):</b> 
   <input class="form-control" type="text" id="staffJob" name="myStaffJob" size="40" maxlength="60"/>

   <b>Personal bio:</b>
   <textarea class="form-control summernote" rows='6' cols='70' id="staffBio" name="myStaffBio" maxlength='1500'></textarea>

    <b>Profile photo:</b>
    <input type="file" class="custom-file-input" name="myStaffPhoto" id="staffPhoto">

    <button name="newStaffBtn" id="newStaffButton" onclick="return confirm('Create new profile?');" type="submit" class="btn btn-primary">Create Profile></button>      

</form>

PHP файл:

if(isset($_POST["newStaffBtn"]))   {

//Text inputs 
$staffName = mysqli_real_escape_string($conn, $_POST["myStaffName"]);
//$staffEmail = mysqli_real_escape_string($conn, $_POST["myStaffEmail"]);
$staffJob = mysqli_real_escape_string($conn, $_POST["myStaffJob"]);
$staffBio = mysqli_real_escape_string($conn, $_POST["myStaffBio"]);
$staffNoEmail = mysqli_real_escape_string($conn, $_POST["myStaffNoEmail"]);

//Staff email option
if (!empty($staffNoEmail)){
  $staffEmail = "Email unavailable";
} else {
  $staffEmail = mysqli_real_escape_string($conn, $_POST["myStaffEmail"]);
}

//Image input
$file = $_FILES["myStaffPhoto"];
... profile photo code blah blah...

$insertquery ="INSERT INTO `staff` (staffID, staffName, staffEmail, staffRole, staffDesc, staffPic) VALUES (null, '$staffName', '$staffEmail', '$staffJob','$staffBio', '".$fileNameNew."')";

   $result = mysqli_query($conn, $insertquery) or die(mysqli_error($conn));

   $msg = "<small>Profile uploaded!</small>";
   $css_class = "alert-success";      


}   

1 Ответ

0 голосов
/ 03 февраля 2020

Если проверен радиовход, он отправит значение с post, если он не проверен, он не отправит никакого значения и не будет существовать в вашем массиве $_POST. В вашем случае вам следует проверить, установлено.

if(isset($_POST["newStaffBtn"]))   {

//Text inputs 
$staffName = mysqli_real_escape_string($conn, $_POST["myStaffName"]);
//$staffEmail = mysqli_real_escape_string($conn, $_POST["myStaffEmail"]);
$staffJob = mysqli_real_escape_string($conn, $_POST["myStaffJob"]);
$staffBio = mysqli_real_escape_string($conn, $_POST["myStaffBio"]);


//Staff email option
if (isset($_POST["myStaffNoEmail"])){
 $staffEmail = mysqli_real_escape_string($conn, $_POST["myStaffEmail"]);
} else {
  $staffEmail = "Email unavailable";
}

//Image input
$file = $_FILES["myStaffPhoto"];
... profile photo code blah blah...

$insertquery ="INSERT INTO `staff` (staffID, staffName, staffEmail, staffRole, staffDesc, staffPic) VALUES (null, '$staffName', '$staffEmail', '$staffJob','$staffBio', '".$fileNameNew."')";

   $result = mysqli_query($conn, $insertquery) or die(mysqli_error($conn));

   $msg = "<small>Profile uploaded!</small>";
   $css_class = "alert-success";      


}   
...