javascript - 未插入数据库表的值

标签 javascript php jquery html mysql

我正在尝试通过网页从下拉列表和文本框中插入值。

首先会有一个下拉框,其中包含从 1 到 25 的数字..

当我从下拉列表中选择数字时,会创建相应的文本框和下拉框。

但是当我输入数据并单击提交按钮时,这些值不会进入数据库,而只有最后一行的值被插入到数据库中。

例如:

假设我从数字下拉列表中选择了 4,现在出现了带有文本框和下拉框的 4 行。

当我在文本框中输入数据并从下拉列表中选择值并单击提交时。最后一行值被插入 4 次。

我希望它正确插入值...我该如何解决这个问题?

这是我正在使用的代码..

代码:

<html>
<head>
<link rel="stylesheet" href="css/common.css" type="text/css">
<link rel="stylesheet" type="text/css" href="css/page.css">
<link rel="stylesheet" type="text/css" href="css/button.css">
<link href="css/loginmodule.css" rel="stylesheet" type="text/css" />

<script type="text/javascript" src="js/jquery.js"></script>
<script type='text/javascript' src='js/jquery.autocomplete.js'></script>
<link rel="stylesheet" type="text/css" href="css/jquery.autocomplete.css" />

<script type="text/javascript">
$().ready(function() {
    $("#Fname").autocomplete("get_course_list.php", {
        width: 260,
        matchContains: true,
        //mustMatch: true,
        //minChars: 0,
        //multiple: true,
        //highlight: false,
        //multipleSeparator: ",",
        selectFirst: false
               });
               });
          </script>

          <script>
            function showUser(str) {
                if(str=="") {
                    document.getElementById("txtHint").innerHTML="";
                    return;
                }

                if(window.XMLHttpRequest) {
                    xmlhttp=new XMLHttpRequest();
                } else {
                    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                }

                xmlhttp.onreadystatechange = function() {
                    if(xmlhttp.readyState==4 && xmlhttp.status==200) {
                        document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
                    }
                }
                xmlhttp.open("GET","gettheater.php?q="+str,true);
                xmlhttp.send();
                }
        </script>


       <script type="text/javascript">


    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">';
       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>';
    }
}


</script> 

<style>

#screens{
color:black;
}

</style>



</head>
<body>


<h1>Welcome <?php echo $_SESSION['SESS_FIRST_NAME'];?></h1>
<a href="member-profile.php" class="log">My Profile</a> | <a href="logout.php" class="log">Logout</a>
<p>This is a password protected area only accessible to Admins. </p>

<center>



<div class="pan"><br><br>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" autocomplete="off">

<div class="head">Update Theater Information</div>
<table>
<tr>
<td><label for="screens">New Movies Released</label></td>
<td>

<select id="select" onchange='javascript:create(this.value);' name="range">
    <option>--Select Number Of New Movies Released--</option>
    <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>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
    <option value="13">13</option>
    <option value="14">14</option>
    <option value="15">15</option>
    <option value="16">16</option>
    <option value="17">17</option>
    <option value="18">18</option>
    <option value="19">19</option>
    <option value="20">20</option>
</select>

</td>
</tr>


<tr>
<td></td>
<td>
<div id="screens">

</div>
</td>
<td></td>
</tr>

<tr>
<td></td>
<td><input type="submit" class="button" name='submit' value="Submit" /></td>

</tr>
</table> 
</form><br><br>
</div>

<?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]','$_POST[language]') ") or die(mysql_error());
}
?>

</center>
</body>
</html>

最佳答案

你应该把你的名字改成像这样的数组

target.innerHTML += '<input type="text" name="Fname[]">';

而且在插入查询中应该是

$query = mysql_query("INSERT INTO movie (movie_name,language) VALUES('".$_POST['Fname'][$i]."','".$_POST['language']."') ") or die(mysql_error());

关于javascript - 未插入数据库表的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19024800/

相关文章:

javascript - 在前端 javascript 应用程序中使用 DI 容器是否有意义

javascript - 单击按钮调用新的 CSS 文件 - 但保留现有样式

javascript - React-native Redux 组件不会在状态更改时使用 bool 值重新渲染

php - 如何启用 PHP Locale 类

javascript - 通过ajax post和codeigniter加载函数加载页面内容时,head部分的一些jquery函数无法调用

javascript - 为条形图中的每个单元格启用标签

javascript - Firebase:使用 JavaScript SDK 加入 Firestore 文档结果

php - 从数组中的文件名中提取基名

jQuery 条件

尽管时间戳正确,但 PHP 日期显示错误的时间