【发布时间】:2013-08-30 11:17:53
【问题描述】:
我在这里尝试将选定的下拉值插入数据库。但这里发生了什么。
这里我有多个文本框和旁边的下拉框。文本框中的值被正确插入到数据库中。但是下拉值没有正确插入到数据库中..
例如: 假设有 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());
}
?>
【问题讨论】:
-
你不能在用 JS 创建的任何东西中使用 PHP。在将任何内容传递给客户端浏览器之前,PHP 在服务器上运行。一旦到达那里,它就无法执行 PHP,因为 PHP 在服务器上运行,而不是在 Web 浏览器内。
-
请停止使用已弃用的 mysql。请改用 myslqi 或 pdo。
-
请拆分php逻辑、javascript代码和html输出:)
标签: php javascript jquery html mysql