1

我有多个下拉框,我试图将选定的值存储在 mysql 数据库中,并且一键单击。下拉框的数量由用户决定。我有一个 jquery 函数,可以生成要显示的所需数量的下拉列表。如前所述,我正在尝试存储每个下拉列表的选定值。每个都有自己的行和唯一的 ID。我的查询根本没有存储任何东西。地点

jquery生成下拉列表的数量

<script>
    $(document).ready(function () {

    $('select').change(function() {
    var option = $(this).val();
    showFields(option);
    return false;
        });


        function showFields(option){ 

            var content = '';
            for (var i = 1; i <= option; i++){
                content += '<div id="course_'+i+'"><label>Course # '+i+'</label><br /><label>Course Name:</label> <select id="coursename_'+i+'" name="coursename_'+i+'"><option value="">--- Select ---</option>"'
                        <?php


                           $mysqli = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
                           if (mysqli_connect_errno()) {
                                printf("Connect failed: %s\n", mysqli_connect_error());
                                exit();
                            } 
                            $course_query = "SELECT course_id, course_name FROM courses ";
                                    if($result = mysqli_query($mysqli, $course_query)) {
                                        while ($idresult = mysqli_fetch_row($result))
                                        {
                                            //dropdown values pulled from database
                                            $course_id = $idresult[0];
                                            $course_name = $idresult[1];
                                            echo 'content += \'<option value="' . $course_id . '">' . $course_name . '</option>\';';
                                        }
                                    }
                        ?>
                '"';                   

                content += '</select><br /><div><br />';

            }
            $('#course_catalog').html(content);

        }
    });
</script>

PHP 插入

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

        $coursename = $_POST["coursename"];
        $courseid = $_POST["courseid"];

        $db_con = new mysqli(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
        $db_insert4 = "INSERT INTO courses_bridge (course_name, course_id) VALUES ('$coursename', '$courseid')";
        mysqli_query($db_con, $db_insert4);

}

?>

HTML

<form action="index.php" method="post">
    Courses being offered?
        <select>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
        </select>

    <div id="course_catalog"></div>

    </br>
    <input value="SAVE" type="submit">
</form>
4

4 回答 4

1

首先,每个选择都需要是一个数组的一部分

'<select name="coursename['+i+']">...</select>'//no need for an underscore

然后在你的 php 中使用 foreach 循环,因为 $_POST['coursename'] 现在是一个数组

[coursename] => array(
[0] => 3
[1] => 2
)

您可以轻松浏览此数组并从您的选择中插入两个值

$db_con = new mysqli(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);

foreach($_POST['coursename'] as $key=>$val){
    $db_insert4 = "INSERT INTO courses_bridge (course_name, course_id) VALUES ('$key', '$val')";
    mysqli_query($db_con, $db_insert4);
}
于 2013-11-12T05:38:47.590 回答
1

这应该有效。

HTML:

    <form action="" method="post">
    Courses being offered?
     <select name="coursesOffered">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
       </select>

  <div id="course_catalog"></div>

  </br>
  <input value="SAVE" type="submit" name="submit">
</form>

JS:

   <script>
   $(document).ready(function () {

   $('select').change(function() {
var option = $(this).val();
showFields(option);
return false;
    });


    function showFields(option){ 

        var content = '';
        for (var i = 1; i <= option; i++){
            content += '<div id="course_'+i+'"><label>Course # '+i+'</label><br /><label>Course Name:</label> <select id="coursename_'+i+'" name="coursename_'+i+'"><option value="">--- Select ---</option>"'
                    <?php


                       $mysqli = new mysqli('localhost', 'root', '123456', 'test');
                       if (mysqli_connect_errno()) {
                            printf("Connect failed: %s\n", mysqli_connect_error());
                            exit();
                        } 
                        $course_query = "SELECT id, tags FROM tags ";
                                if($result = mysqli_query($mysqli, $course_query)) {
                                    while ($idresult = mysqli_fetch_row($result))
                                    {
                                        //dropdown values pulled from database
                                        $course_id = $idresult[0];
                                        $course_name = $idresult[1];
                                        echo 'content += \'<option value="' . $course_id . ':'.$course_name.'">' . $course_name . '</option>\';';
                                    }
                                }
                    ?>
            '"';                   

            content += '</select><br /><div><br />';

        }
        $('#course_catalog').html(content);

    }
});
 </script>

PHP:

   <?php
if(isset($_POST['submit'])){
$coursesOffered=$_POST['coursesOffered'];
$db_con = new mysqli(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
    for($i=1;$i<=$coursesOffered;$i++)
    {
    $courseVals=explode(':',$_POST["coursename_".$i]);

    $db_insert4 = "INSERT INTO courses_bridge (course_name, course_id) VALUES ('".$courseVals[1]."', '".$courseVals[0]."')";
    mysqli_query($db_con, $db_insert4);
    }     
}

 ?>
于 2013-11-12T05:52:38.737 回答
-1

使用 php 中的序列化和反序列化将下拉列表中的多个值存储到数据库中

HTML 代码:

                    <option value="" selected>Any</option>
                    <option value="Hindu">Hindu</option>
                    <option value="Muslim-Shia">Muslim - Shia</option>
                    <option value="Muslim-Sunni">Muslim - Sunni</option>
                    <option value="Muslim-Others">Muslim - Others</option>
                    <option value="Christian-Catholic">Christian - Catholic</option>
                    <option value="Christian-Orthodox">Christian - Orthodox</option>
                    <option value="Christian-Protestant">Christian - Protestant</option>
                    <option value="Christian-Others">Christian - Others</option>
                    <option value="Sikh">Sikh</option>
                    </select>

PHP代码:

$religion=$_POST['religion'];

if(isset($religion)){

//$rel=explode(':',$_POST["religion_".$i]);
//$rel=implode(',',$religion);
$serializedoptions1 = serialize($religion);
$serializedoptions123 = unserialize($serializedoptions1);
//print_r($serializedoptions123); 
foreach($religion as $key=>$val){
echo $val;
}

}

$qry1="insert into preference(id,email,toage,fromage,maritalstatus,toheight,fromheight,phc,religion,star,caste, mangalik,mothertongue,qualification,occupation,income,country,state,city,citizenship,food, smoking,drinking,partner_desc)
VALUES('','" . $_SESSION['user'] . "','$toage','$fromage','$maritalstatus','$toheight',     '$fromheight','$phc','".implode(',',$serializedoptions123)."','$serializedoptions2','$serializedoptions','$mangalik','$serializedoptions3',          '$serializedoptions8','$serializedoptions9','$income','$serializedoptions4','$serializedoptions5','$serializedoptions6','$serializedoptions7','$food','$smoking','$drinking','$description')";

mysql_query($qry1) or die(mysql_error());
于 2014-05-21T09:58:04.583 回答
-1
<?php                                       
$pid=$row['pid'];
//echo $pid;die;
{
?>                        
    <form name="my_form" id="my_form" method="POST">                                            
    <label>Pid</label>
    <select  id="pid" name="Pid">
    <option value="1" <?php if($pid==1) { ?> selected="selected" <?php } ?>> Factory</option>
    <option value="2" <?php if($pid==2) { ?> selected="selected" <?php } ?> >Plant</option>
    <option value="3" <?php if($pid==3) { ?> selected="selected" <?php } ?> >Sugar Firm</option>
    <option value="4" <?php if($pid==4) { ?> selected="selected" <?php } ?> >Warehouse</option>
    <option value="5" <?php if($pid==5) { ?> selected="selected" <?php } ?> >Machinery</option>
    </select>
于 2015-03-03T06:20:26.417 回答