Php 显示数据时未定义的变量
这是一个演示 在演示中,选择一个评估,提交它,然后当学生和问题下拉菜单出现时,单击其他提交按钮。您将看到一个未定义的变量出现。我想做的是从Php 显示数据时未定义的变量,php,mysqli,Php,Mysqli,这是一个演示 在演示中,选择一个评估,提交它,然后当学生和问题下拉菜单出现时,单击其他提交按钮。您将看到一个未定义的变量出现。我想做的是从评估下拉菜单中回显评估名称、数据和时间。但如何做到这一点呢 以下是相关代码: function PickSession() { //ASSESSMENT DROP DOWN MENU: //Get data from database $sessionquery
评估
下拉菜单中回显评估名称、数据和时间。但如何做到这一点呢
以下是相关代码:
function PickSession()
{
//ASSESSMENT DROP DOWN MENU:
//Get data from database
$sessionquery = "
SELECT s.SessionId, SessionName, SessionDate, SessionTime, SessionActive, Complete
FROM Session s
INNER JOIN Session_Complete sc ON sc.SessionId = s.SessionId
WHERE
(Complete = ?)
ORDER BY SessionName
";
$complete = 1;
global $mysqli;
$sessionqrystmt=$mysqli->prepare($sessionquery);
// You only need to call bind_param once
$sessionqrystmt->bind_param("i",$complete);//it doesn't recognse $userid
// get result and assign variables (prefix with db)
$sessionqrystmt->execute();
$sessionqrystmt->bind_result($dbSessionId,$dbSessionName,$dbSessionDate,$dbSessionTime, $dbSessionActive, $dbComplete);
$sessionqrystmt->store_result();
?>
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post">
<p>
<strong>Asessments:</strong>
<select name="session" id="sessionsDrop">
<option value="">Please Select</option>
<?php
while ( $sessionqrystmt->fetch() ) {
$sv = $dbSessionId;
if(isset($_POST["session"]) && $sv == $_POST["session"])
echo "<option selected='selected' value='$sv'>" . $dbSessionName . " - " . date('d-m-Y',strtotime($dbSessionDate)) . " - " . date('H:i',strtotime($dbSessionTime)) . "</option>" . PHP_EOL;
else
echo "<option value='$sv'>" . $dbSessionName . " - " . date('d-m-Y',strtotime($dbSessionDate)) . " - " . date('H:i',strtotime($dbSessionTime)) . "</option>" . PHP_EOL;
}
?>
</select>
</p>
<input id="sessionSubmit" type="submit" value="Submit Assessments" name="sessionSubmit" />
</form>
<?php
}
--------------------------------------------------------------------
function SessionIsSubmitted()
{
if(isset($_POST["session"]) && empty($_POST["session"])) // We picked the "Please select" option
{ ?>
Please Select an Assessment
<?php
return false;
}
else if(!isset($_POST["session"]))
{
return false;
}
else // All is ok
{
return true;
}
return false;
}
--------------------------------------------------------------------
function ShowAssessment()
{
//STUDENT AND QUESTION DROP DOWN MENU GO HERE
//button - name='answerSubmit' goes here
}
--------------------------------------------------------------------
function StudentAnswersIsSubmitted()
{
if(!isset($_POST["answerSubmit"]))
{
return false;
}
else // All is ok
{
return true;
}
return false;
}
--------------------------------------------------------------------
function StudentAnswers()
{
echo $dbSessionName . " - " . $dbSessionDate . " " . $dbSessionTime;
}
?>
Below is functions structure:
<?php
PickSession(); // Show the thing to pick session
if(SessionIsSubmitted()) // When session is picked
{
ShowAssessment(); // Show students and questions information
if(StudentAnswersIsSubmitted()) // Student Answers button is submitted
{
StudentAnswers();
}
}
?>
函数PickSession()
{
//评估下拉菜单:
//从数据库获取数据
$sessionquery=”
选择s.SessionId、SessionName、SessionDate、SessionTime、SessionActive、Complete
来自会话s
内部连接会话\u在sc.SessionId=s.SessionId上完成sc
哪里
(完整=?)
按会话名称排序
";
$complete=1;
全球$mysqli;
$sessionqrystmt=$mysqli->prepare($sessionquery);
//您只需要调用bind_param一次
$sessionqrystmt->bind_param(“i”,$complete);//它不识别$userid
//获取结果并分配变量(前缀为db)
$sessionqrystmt->execute();
$sessionqrystmt->bind_result($dbSessionId、$dbSessionName、$dbSessionDate、$dbSessionTime、$dbSessionActive、$dbComplete);
$sessionqrystmt->store_result();
?>
无法通过放置数组变量$dbSessionName
打印选定的元素。所有评估都存储在此数组中,您希望通过放置数组变量打印选定的评估。请尝试仅打印已选定的数组元素。
这样做:
<select name="session[]" id="sessionsDrop">
if (isset($_POST['Submit']) == 1) {
$session_name = $_POST['session'];
echo $session;
}
如果(isset($_POST['Submit'])==1){
$session\u name=$\u POST['session'];
回音$session;
}
我是否必须编写另一个查询才能显示所选会话的名称、日期和时间?我已完成此操作$selectedSession=$\u POST['session'];…echo$selectedSession;
这会回显评估下拉菜单中的值,但我想显示所选评估的内容、名称、日期、时间。您必须这样做。否则,您可以做一件事,将下拉菜单中的内容作为值。