简体   繁体   English

根据数据库值从选项中进行选择

[英]Selection from option based on database values

I'm working on last part on my project, I'm building web-site, in this part, I want to display options of a job ( whether the job still in progress or Completed ) I gave my row in mysql enum values, "Completed","InProgress" and when the student pick a job, the JobStatus will be "InProgress" and the student can change this value from his JobLists page, when it's done, he can change it to Completed. 我正在项目的最后一部分,正在构建网站,在这一部分中,我想显示作业的选项(无论该作业仍在进行中还是已完成),我在mysql枚举值中给了我一行“已完成”,“进行中”,当学生选择工作时,JobStatus将为“进行中”,并且学生可以从其JobLists页面更改此值,完成后,可以将其更改为Completed。 and it will be changed in the Database and this is my code trying to, in this Code, it shows me an Error on the Update Query JobStatus = '".$_POST['JobStatus'] is not Defined ?? any one can help PLEASE Guys 它将在数据库中更改,这是我的代码尝试在此代码中向我显示更新查询JobStatus = '".$_POST['JobStatus']中的错误未定义??任何人都可以帮忙伙计们

<?php 
  //Connect to DB
include('CIEcon.php');

$sqlCommand ="SELECT Accounts.SSU , Jobs.JobName, Jobs.Description, Jobs.DueDate,Jobs.JobId, JobsLists.JobStatus FROM JobsLists,Jobs,Accounts WHERE  Accounts.SSU = JobsLists.SSU AND Jobs.JobId = JobsLists.JobId  And Accounts.SSU = '".$_SESSION['SSU']."'  ";

$result = mysqli_query($dbCIE,$sqlCommand) or die(mysql_error()); 

 echo "<form  action='JobsLists.php' method='post'>";


while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td> <input type='checkbox'  name='JobId[]'  value='". $row['JobId'] ."'  /> </td>";
echo "<td align=center>" . $row['SSU'] . "</td>";
echo "<td align=center>" . $row['JobName'] . "</td>";
echo "<td align=center> " . $row['Description'] . "</td>";
echo "<td align=center>" . $row['DueDate'] . "</td>";
echo "<td align=center>" . 
"<select>
  <option name = JobStatus[".$row['JobId']."] value='InProgress' selected> In Progress </option>
  <option name = JobStatus[".$row['JobId']."] value='Completed'          >     Completed </option>
</select>" . "</td>"; // need to be worked on.. 
echo "</tr>";
}
"</table>";

//Connect to DB
include('CIEcon.php');

// save the SSU for the current user to save the sata when insert jobs in jobslist
$SSU = $_SESSION['SSU']; 
/////


//handle this when to save a status. 
if( isset($_POST['save']) ){
    if( empty($_POST['JobId']) || $_POST['JobId'] == 0 ){
      echo"<h4>  Status Wasn't Changed..  </h4>";
              }else{ 
include('CIEcon.php');  //$dbCIE 
foreach($_POST['JobId'] AS $i){
    /// update JobsLists table with the new status..  
     $sqlUpdate = "UPDATE  JobsLists SET JobStatus = '".$_POST['JobStatus'][$i]."'  WHERE JobId = '" . $i . "'";
     $resultUpdate = mysqli_query($dbCIE,$sqlUpdate) or die(mysqli_error($dbCIE));

}

// TEST ONLY ////////----------------------------------------////////////
if (mysqli_affected_rows($dbCIE) > 0) {
  echo "<h4> You have successfully Saved your statuse </h4>";

}else{ echo "<h4> Error occurred </h4> "; }
////////----------------------------------------////////////


                }  // end of else, when user select something.. 
            } 


?>

It's because you haven't named the select box which you are trying to send values with.. HTML <option> s don't have a name, but only a value. 这是因为您没有命名要用来发送值的选择框。HTML <option>没有名称,只有一个值。 it is this value which is the assigned to the name of the <select> in $_POST 这是在$_POST分配给<select>名称的值

 while($row = mysqli_fetch_array($result))
    {
    echo "<tr>";
    echo "<td> <input type='checkbox'  name='JobId[]'  value='". $row['JobId'] ."'  /> </td>";
    echo "<td align=center>" . $row['SSU'] . "</td>";
    echo "<td align=center>" . $row['JobName'] . "</td>";
    echo "<td align=center> " . $row['Description'] . "</td>";
    echo "<td align=center>" . $row['DueDate'] . "</td>";
    echo "<td align=center>" . 
    echo "<select name='JobStatus[".$row['JobId']."]'>";
        if($row['JobStatus'] == "InProgress"){
           echo  "<option value='InProgress' selected>In Progress</option>";  
           echo "<option value='Completed'>Completed</option>";
        } else {
            echo  "<option value='InProgress'>In Progress</option>";  
           echo "<option value='Completed' selected> Completed </option>";

        } 

    echo "</select>" . "</td>"; // need to be worked on.. 
    echo "</tr>";
    }
    "</table>";

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM