2013-08-30 61 views
0

这里我试图将选定的下拉值插入到数据库中。但是这里发生了什么。在循环中没有插入数据库的下拉值

在这里,我有多个文本框和旁边的下拉框。来自文本框的值正在正确插入到数据库中。但下拉值没有正确插入数据库..

例如: 假设有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()); 
} 
?> 
+0

你不能在任何用JS创建的东西里面使用PHP。 PHP在任何传递给客户端浏览器之前都在服务器上运行。一旦出现,就不能执行PHP,因为PHP在服务器上运行,而不是在Web浏览器内运行。 – Fluffeh

+0

请停止使用不推荐使用的mysql。改用myslqi或pdo。 – cptnk

+0

请分割php逻辑,javascript代码和html输出:) –

回答

0

你需要为每个不同的name属性select。你为textfield做的方式。

您可以使用与文本字段相同的技巧。即,将selects的名称附加到循环索引。