将ID从下拉列表保存到其他表中

时间:2016-05-09 19:42:32

标签: php mysql

我有一个包含字段和一个下拉列表的表单。下拉列表中的数据来自表:类别。 (字段为:catID,catName)

当我从下拉列表中选择一个类别并填充所有其他输入字段时,它会将所有输入字段和catName中的catName保存到tabel:event中。 如何将类别表中选定的catID保存到事件表中?

有人可以帮助我吗?

问候,本尼

    <?php require '../Connections/localhost.php'; ?>
<?php
    if(isset($_POST['newEvent'])) {

        session_start();
        $eventName = $_POST['SelCatName'];
        $eventSDate = $_POST['Event-StartDate'];
        $eventSTime = $_POST['Event-StartTime'];
        $eventEDate = $_POST['Event-EndDate'];
        $eventETime = $_POST['Event-EndTime'];
        $eventDescription = $_POST['Event-Description'];
        $catID = $_POST["catID"];

    $sql = $con->query("INSERT INTO event (eventName, eventSDate, eventSTime, eventEDate, eventETime, eventDescription, catID)Values('{$eventName}', '{$eventSDate}', '{$eventSTime}', '{$eventEDate}', '{$eventETime}', '{$eventDescription}', '{$catID}')");


    header('Location: eventOK.php');
    }
?>



<form action="" method="post" name="RegisterForm" id="RegisterForm">

    <div class="FormElement">

       <select name="SelCatName" class="TField" id="SelCatName">
            <option selected="selected" id="0">--Selecteer een categorie--</option>         
                    <?php 
                        $GetAllCategories = $con->query("SELECT * FROM categorie");
                        while ($ViewAllCategories = mysqli_fetch_array($GetAllCategories)){
                    ?>  
            <option id="<?php echo $ViewAllCategories['catID']; ?>"><?php echo $ViewAllCategories ['catName']; ?> </option>   

                <?php } ?>       

        </select>

2 个答案:

答案 0 :(得分:0)

你在<option id="id"></option>犯了一个错误 如果你想从精选孩子那里获取价值。

您必须将id更改为value =“”或者您必须正确添加value =“id”。

完全按照以下方式更改您的选择框。

<select name="SelCatName" class="TField" id="SelCatName">
<option selected="selected" id="0">--Selecteer een categorie--</option>         
<?php 
$GetAllCategories = $con->query("SELECT * FROM categorie");
while ($ViewAllCategories = mysqli_fetch_array($GetAllCategories)){
?>  
<option value="<?PHP echo $ViewAllCategories['catID'].'-'.$ViewAllCategories['catName']; ?>"> <?PHP echo $ViewAllCategories['catName']; ?></option>   

<?php } ?>       
</select>

和mysql查询的提示...尽管你不需要使用"select * from"如果你不需要比“*”更好的所有colums

$con->query("SELECT catID, catName FROM categorie");

PHP文件

    <?php require '../Connections/localhost.php'; ?>
<?php
    if(isset($_POST['newEvent'])) {

        session_start();

        //$eventName = $_POST['SelCatName'];
        $eventSDate = $_POST['Event-StartDate'];
        $eventSTime = $_POST['Event-StartTime'];
        $eventEDate = $_POST['Event-EndDate'];
        $eventETime = $_POST['Event-EndTime'];
        $eventDescription = $_POST['Event-Description'];
        $catIDs = $_POST["SelCatName"];
        $catID = explode("-", $catIDs);

    $sql = $con->query("INSERT INTO event (eventName, eventSDate, eventSTime, eventEDate, eventETime, eventDescription, catID)Values('{$catID[1]}', '{$eventSDate}', '{$eventSTime}', '{$eventEDate}', '{$eventETime}', '{$eventDescription}', '{$catID[0]}')");


    header('Location: eventOK.php');
    }
?>

答案 1 :(得分:0)

对我来说,你错过了ID的属性,将ID替换为值:你的选项标签已经有了id和名称

<select name="SelCatName" class="TField" id="SelCatName">

您的代码将是:

<?php 
    $GetAllCategories = $con->query("SELECT * FROM categorie");
    while ($ViewAllCategories = mysqli_fetch_array($GetAllCategories)){
?>  
    <option value="<?php echo $ViewAllCategories['catID']; ?>"> <?php echo $ViewAllCategories ['catName']; ?> </option>   

<?php } ?>

因此,您会发现您的帖子仅为SelCatName =(数字ID) 现在,如果您需要将catID和catName的列表存储到下一页,您可以在下一页中重新运行查询并将它们存储在一个数组中。