javascript - 数据未显示在选择标签中

标签 javascript php html sql select

我有一个章节的选择标签,我正在其中加载查询结果。但它没有显示在 select 标签中,章节名称显示为 echo 语句。

     <!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>MCQ Questions</title>

</head>
<body>

<?php
session_start();

$dbh = new PDO('mysql:host=174.75.54;dbname=handbook', 'airman', 'airman'); 

    $type = $_POST['type'];
    $question = $_POST["question"];
    $optionA = $_POST["opt1"];
    $optionB = $_POST["opt2"];
    $optionC = $_POST["opt3"];
    $optionD = $_POST["opt4"];
    $ans = $_POST["ans"];
    $chapter = $_POST["chapter"];
?>

<form method="post" action="mcq.php" enctype="multipart/form-data">


<?php if(isset($_POST['question']))
{
?>

Enter the question: <input name="question" type="text" value = "<?php echo $question?>"</input> <br><br>
<?php
}
else
{
?>
    <p> Enter the question :</p> <input name="question" type="text"></input> <br><br>

<?php
}
?>

Select rank : 

<select name="type" id="type" onchange="this.form.submit()"> 

<?php if(isset($_POST['type']))
{ ?>
<option value="1"  <?php echo($type==1?"selected":"");?>>SSgt</option> 

<option value="2"  <?php echo($type==2?"selected":"");?>>TSgt</option> 
<option value="3" <?php echo($type==3?"selected":"");?>>MSgt</option>
</select>
<?php
}
    else 
    {
    ?>
    <option value="1">SSgt</option> 
<option value="2">TSgt</option> 
<option value="3">MSgt</option> 
</select>
    <?php
    }
    ?>

<br><br>
<?php if(isset($_POST['opt1']))
{ ?>
<p> Enter options :</p>
Enter option A : <input name="opt1" type="text" value = "<?php echo $optionA?>"</input> <br><br>

<?php
}
else{
?>
<p> Enter options :</p>
Enter option A : <input name="opt1" type="text"> <br><br>
<?php   
}
?>
<?php if(isset($_POST['opt2']))
{ ?>

Enter option B : <input name="opt2" value = "<?php echo $optionB?>"</input> <br><br>

<?php
}
else{
?>
Enter option B : <input name="opt2" type="text"> <br><br>
<?php   
}
?>

<?php if(isset($_POST['opt3']))
{ ?>
Enter option C : <input name="opt3" value = "<?php echo $optionC?>"</input> <br><br>

<?php
}
else{
?>

Enter option C : <input name="opt3" type="text"> <br><br>

<?php
}
?>

<?php if(isset($_POST['opt4']))
{ ?>
Enter option D : <input name="opt4" value = "<?php echo $optionD?>"</input> <br><br>
<?php
}
else{
?>

Enter option D : <input name="opt4" type="text"> <br><br>

<?php
}
?>


Select correct answer :

<select name="ans" id="type"> 


<?php if(isset($_POST['ans']))
{
?>
<option value="A"  <?php echo($ans==A?"selected":"");?>>A</option> 

<option value="B"  <?php echo($ans==B?"selected":"");?>>B</option> 

<option value="C" <?php echo($ans==C?"selected":"");?>>C</option>

<option value="D" <?php echo($ans==D?"selected":"");?>>D</option
</select>

<br><br>
<?php
}
else
{
?>

<option value="A">A</option> 
<option value="B">B</option> 
<option value="C">C</option> 
<option value="D">D</option>
</select>
<?php
}
?>
<br><br>

Select Chapter : 
<select name="chapters" id="chapters"> 

<?php 

if(isset($_POST['type']))
{
    $stmt = $dbh->prepare("SELECT * FROM chapters where type = :type"); 
    $stmt->bindParam("type", $type);
$stmt->execute(); 
$results = $stmt->fetchall(PDO::FETCH_ASSOC); 

if(count($results > 0)){ 
foreach($results as $row):?> 
<option value="<?php echo $row['id'];?>"><?php echo $row['title'];?></option> 
<?php 
endforeach; 
}else{?> 

<option value="0">No data found</option> 
<?php 
} 

}

else{

$stmt = $dbh->prepare("SELECT * FROM chapters where type = 1"); 

$stmt->execute(); 
$results = $stmt->fetchall(PDO::FETCH_ASSOC); 

if(count($results > 0)){ 
foreach($results as $row):?> 
<option value="<?php echo $row['id'];?>"><?php echo $row['title'];?></option> 
<?php 
endforeach; 
}else{?> 

<option value="0">No data found</option> 
<?php 
} 
}
?> 

</select> <br><br>

<input type="Submit" value = "Submit" name="b1">

<?php

if(isset($_POST['b1']))
{

ini_set('display_errors', 1); 
error_reporting(1); 
ini_set('error_reporting', E_ALL); 

$type = $_POST['type'];
$question = $_POST['question'];
$optionA = $_POST['opt1'];
$optionB = $_POST['opt2'];
$optionC = $_POST['opt3'];
$optionD = $_POST['opt4'];
$ans = $_POST['ans'];
$chapter = $_POST['chapters']; 

    $stmt = $dbh->prepare("INSERT INTO questions (question,answer_a,answer_b,answer_c,answer_d,answer,type,chapterId) VALUES (?, ?, ?, ?, ?, ?, ?,?)");
$stmt->execute(array($question, $optionA, $optionB, $optionC, $optionD, $ans,$type,$chapter));

if ($dbh->lastInsertId())
{   
    echo 'Question submitted.';

    echo '<a href="mcq.php">Upload another question.</a>';
    session_destroy();
}
else
{
    echo 'Question could not submit.';
}
}
?>

</form>
</body>
</html>

如果未设置类型,它会在第一次加载 select 标签中的数据,但如果设置了类型,它会显示像 echo 语句一样的章节。

这里有什么问题?请帮忙谢谢。

最佳答案

我在 php 中构建我的选项,然后像这样回显整个字符串 在 PHP 中

IF ($row[$i]['abc'] == 'A'){
$a[$i]='<option value="A" selected="selected">A</option>';
$b[$i]='<option value="B" >B</option>';
}
IF ($row[$i]['abc'] == 'B'){
$a[$i]='<option value="A" >A</option>';
$b[$i]='<option value="B" selected="selected" B</option>';
}

在我的 html 中

 <select>
    <php? echo $a[$i]; ?>
    <php? echo $b[$i]; ?>
 </select>

始终根据正确的数据工作并设置它

为了练习和学习,创建一个名为 try1.php 的文件

<?php

$1='<option value="1">1</option>';
$2='<option value="2">2</option>';
//name of your selection
if(isset($_POST['1']){
echo 'you selected : '.$_post['1'];

}
?>
<html>
<body>
<select name="1">
<?php echo $1; ?>
<?php echo $2; ?>
</select>
<input type="submit" name="1" value="1">
</body>
</html>

这是我为我妻子制作的文件中的代码,它已经工作了 2 年,但它很旧并且没有获取所选内容的功能

<?php
session_start();
include_once("../staffpage/getstaff.php");
include_once("../staffpage/staffheader.php");
include_once("../cert/dbc.php");
?>
<html>
   <head>
   </head>
      <body>
        <h1>&#20250;&#21592;&#27880;&#20876;</h1>

       <form action="direct to you php file handling your indput.php" method="post">
          <tr>
             <td>
                <table width="60%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
                 <tr>
                    <td colspan="3"><strong>&#20250;&#21592;&#27880;&#20876;</strong></td>
                 </tr>
                  <tr>
             <td width="78">&#21345;&#21495;</td>
         <td width="6">:</td>

         <td width="294"><input type="text" name="cno" required/></td>
         </tr>
         <td width="78"> &#25910;&#25454;&#21495;</td>
         <td width="6">:
         </td>

         <td width="294"><input type="text" name="rno" required/></td>

         </td>
         </tr>
         <td width="78"> &#22995;&#21517;</td>
         <td width="6">:</td>
         <td width="294"><input type="text" name="fname" required/></td>
         </tr>


         <td width="78">&#30005;&#35805;</td>
         <td width="6">:</td>
         <td width="294"><input type="text" name="ctel" required/></td>
         </tr>


         <td width="78"> cardname </td>
         <td width="6">:</td>
         <td width="294">
         <select name="cardnameno" >
            <?php
                //my query in this file
                include_once("../sec/cards.php");
                $i=0;
                while($row = mysql_fetch_array($result)) {
                $z2=$row['cardname'];
                $z1=$row['cardnameno'];
                ?>

            <option value="<?php echo $row['cardnameno']; ?>" ><?php echo $row['name']; ?></option>
            <?php
            $i++;
            }
            ?>  
        </select>

        </tr>
        <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td><input type="submit" /></td>
        </tr>
    </table>
</form></p>
  </div>
</form>
</body>
</html>
</html>

我将这个文件包含在另一个文件中但不应该阻止它工作

关于javascript - 数据未显示在选择标签中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43077550/

相关文章:

javascript - 包含集合的模型的 Backbone.js View ?

php - 需要一个正则表达式来用左代替右,右代替左

javascript - 为所有浏览器创建零宽度换行点

javascript - ListView 上动态生成元素的单击事件

php - 服务器负载数据库与文件操作

html - <hr> 每三个 <div> 下面

javascript - YouTube 资源上 window.fetch 的 CORS 错误

javascript - 如果服务器响应 401/402 状态,Deferred.fail() 会被触发吗?

javascript - 通过 f11 启用全屏后通过 javascript 禁用全屏

php - 我应该如何使用 PHP 和 MySQL(不使用 OAuth)以安全的方式将 'Token Based Authentication' 实现到一组 Web API?