在循环中未将下拉值插入数据库

Drop down value not inserting into database in loop

本文关键字:插入 数据库 循环      更新时间:2023-09-26

这里我试图将所选的下拉值插入数据库。但现在发生了什么。

在这里,我有多个文本框和下拉框旁边。文本框中的值被正确地插入到数据库中。但是下拉列表值没有正确插入数据库。。

例如:假设有3个文本框和下拉列表。现在,我在文本框中输入一些数据,并在下拉框中选择值,然后单击提交。

当我点击提交时。三个文本框值正确地插入到数据库中。但是下拉值没有被正确地插入。但它插入了最后一个下拉值3次。。。

如何解决这个问题?

javascript和php代码:该代码动态生成文本框和下拉菜单

function create(param) {
    'use strict';
    var i, target = document.getElementById('screens');
    target.innerHTML = '';
    target.innerHTML = '<input name="RowCount" value="' + param + '" hidden />';
    for(i = 0; i < param; i += 1) {
       target.innerHTML +='</br>';
       target.innerHTML +='New Movie '+i+'  ';
       target.innerHTML += '<input type="text" name="Fname_' + i + '">';
       target.innerHTML +='  '+'Language '+'  ';
       target.innerHTML += "<?php 
        try {
            $dbh = new PDO('mysql:dbname=theaterdb;host=localhost','tiger','tiger');
        } catch (PDOException $e) {
            echo 'Connection failed: ' . $e->getMessage();
        }
        $sql = 'SELECT language FROM languages;';
        $sth = $dbh->prepare($sql);
        $sth->execute();
        echo "<select name='language' id='course'>";
        echo "<option>----Select Language----</option>"; 
        while($row = $sth->fetch(PDO::FETCH_ASSOC)) {
            echo "<option value='" . $row['language'] ."'>" . $row['language']. "</option>";
        }
        echo "</select>";
?>";
       target.innerHTML +='</br>';
       target.innerHTML +='</br>';
    }
}

php代码获取文本框和下拉值

<?php
mysql_connect("localhost", "tiger", "tiger") or die(mysql_error());
mysql_select_db("theaterdb") or die(mysql_error());
for ($i=0; $i < $_POST["range"] ; $i++)
{
$query = mysql_query("INSERT INTO movie (movie_name,language) VALUES('" . $_POST['Fname_' . $i] . "','" . $_POST['language'] . "') ") or die(mysql_error());
}
?> 

您需要为每个select提供不同的name属性。你为textfield做的事情。

您可以使用与文本字段相同的技巧。也就是说,在selects的名称后面加上循环索引。