【问题标题】:Trying to print chosen element from associative array from the datalist尝试从数据列表中的关联数组中打印所选元素
【发布时间】:2021-09-22 22:36:07
【问题描述】:

我有一个表格,我正在尝试从数组中打印所选元素以打印课程描述。这是我的代码的一部分。其余代码工作正常。我只有数组有问题。我正在使用方法和行动。我觉得我的 foreach 语句有问题,但我无法弄清楚。知道是什么导致了所有数组元素的打印吗?

    <label for="course">Choose a course:</label>
    <input list="courseOptions" id="course" name="course">
    <datalist id="courseOptions">
        <option value="COMP1230">
        <option value="COMP2129">
        <option value="COMP2147">
        <option value="COMP2130">
        <option value="COMP2138">
        <option value="GSSC1054">    
    </datalist>
<?php
    $course = array("COMP1230"=>"Advanced Web Development",
    "COMP2129"=>"Advanced Object-Oriented Programming",
    "COMP2147"=>"System Analysis, Design & Testing",
    "COMP2130"=>"Application Development Using Java",
    "COMP2138"=>"Advanced Database Development",
    "GSSC1054"=>"Forensic Psychology"
    );
    
    foreach($course as $courseCode => $courseName){
        echo("<div> Course Name:   $courseName </div>");
    } 
?>

我只想打印所选的选项

【问题讨论】:

  • 嗯,首先你需要先提交选择(通过表单或 AJAX),然后 PHP 才能对其进行任何操作
  • 是的。我已经做到了
  • 好吧,问题中没有证据表明这一点 - 没有 &lt;form&gt; 标签,也没有尝试检查 $_POST 数据以查找提交的内容。您是否学习过 HTML/PHP 表单教程?因为你会看到$_POST的用法。
  • “知道是什么导致了所有数组元素的打印吗?” - 嗯,事实上您编写代码就是为了做到这一点......?

标签: php html forms


【解决方案1】:

提交表单后,使用$_POST['course']获取所选课程。

if (isset($_POST['course']) {
    echo "<div>Course Name: {$course[$_POST['course']]}</div>";
} else {
    foreach($course as $courseCode => $courseName){
        echo("<div> Course Name:   $courseName </div>");
    }
}

【讨论】:

  • 成功了,非常感谢。
猜你喜欢
  • 2019-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-22
  • 1970-01-01
相关资源
最近更新 更多