循环只插入最后的值
Loop inserting only last values
我使用php从文本框中获取所有值,在循环中获取值。
在循环中,我还有insert语句和count。
流程为:我将从下拉列表中选择值,当我从下拉列表选择数字时,将创建相应数量的文本框。
例如:我从下拉列表中选择了数字3。因此它将创建3个文本框。
现在,我将在这3个文本框中输入数据,然后单击提交。当我点击提交时,只有最后一个文本框的值被插入到数据库中。
即,当我选择3并将数据输入到3文本框时,它只插入第三个文本框值3次,而不是插入第一个、第二个和第三个值。。
我该怎么解决。。?
这是我用过的代码。。
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]','$_POST[language]') ") or die(mysql_error());
}
?>
range是我在下拉列表中选择的值。
javascript代码:
for(i = 0; i < param; i += 1) {
target.innerHTML +='</br>';
target.innerHTML +='New Movie '+i+' ';
target.innerHTML += '<input type="text" name="Fname">';
}
这是动态生成文本框
问题是,您正在创建与以前创建的名称相同的新输入,php的$_POST[]会在输入名称上加上arround,因此您需要创建具有唯一名称的输入类似的东西
for(i = 0; i < param; i += 1) {
target.innerHTML +='</br>';
target.innerHTML +='New Movie '+i+' ';
target.innerHTML += '<input type="text" name="Fname_' + i + '">';
}
<?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());
}
?>
然而,这将只用于添加一次输入,或者您将再次创建具有标识名称的输入,为了获得around,我将重新计算并将总计数存储在一个名为计数<input type="hidden" value="0" name="count" />
的隐藏输入中,该输入基于该计数的名称
var count = $('input[name=count]');
for(i = 0+count; i < param+count; i += 1) {
target.innerHTML +='</br>';
target.innerHTML +='New Movie '+i+' ';
target.innerHTML += '<input type="text" name="Fname">';
}
<?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());
}
?>
我还没有测试过这段代码,所以你可能需要修改一下才能让它正常工作,但的概念就在那里
尝试
<?php
mysql_connect("localhost", "tiger", "tiger") or die(mysql_error());
mysql_select_db("theaterdb") or die(mysql_error());
for ($i=0; $i <= count($_POST["Fname"]); $i++)
{
$query = mysql_query("INSERT INTO movie (movie_name,language) VALUES('$_POST[Fname][$i]','$_POST[language][$i]') ") or die(mysql_error());
}
?>
您正在使用$_POST["Fname"]进行插入。因此,您应该在for语句中使用count($_POST["Fname"])
将代码更改为:
for(i = 0; i < param; i += 1) {
target.innerHTML +='</br>';
target.innerHTML +='New Movie '+i+' ';
target.innerHTML += '<input type="text" name="Fname[]">';
}
php自动将Fname[]转换为array(),这样您就可以使用循环浏览您的电影名称
<?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());
}
?>
当您将表单发布到服务器时,表单中的所有输入都会连同它们的name属性一起发送到服务器。在您的情况下,您已将输入名称指定为"Fname"。因此,只有一个名为"Fname"的输入被发送到服务器。因此,您只得到一个post输入,即$_SERVER["Fname"]。
只需将javascript代码更改为
for(i = 0; i < param; i += 1) {
target.innerHTML +='</br>';
target.innerHTML +='New Movie '+i+' ';
target.innerHTML += '<input type="text" name="Fname[]">';
}
使用Fname[]而不是Fname。现在您正在发布Fname数组。因此,您将在$_SERVER["Fname"]中获得数组。在这里,您将收到数组中的所有Fname输入字段。因此,将您的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());
}
?>
这将解决你的问题。
- Ajax和MySql的插入、检查和检索
- 无法读取未定义的属性“最后”的未定义
- 带验证的插入函数上的Codeigniter Ajax
- 禁用指针事件后,1个最后的mouseout触发
- 我需要一个关于如何让我的插入代码在php和mysql中工作的提示
- 在JavaScript中,对象如何跟踪键/值的插入顺序
- Ace编辑器通过垂直滚动条隐藏最后的相扑
- 我可以使用或打开'插入'现代浏览器中使用javascript的插入符号
- Javascript:在所见即所得编辑器中的插入符号处粘贴文本
- 如何在 Tinnymce 编辑器的插入链接弹出窗口中添加 rel 属性
- 如何仅从循环中调用最后的承诺
- 在 Azure 表存储的插入函数中查询其他表
- 确定何时完成 JavaScript Dropbox 数据存储 API 的插入
- 使用 Node.js + CoffeeScript + MySQL 制作几个相关的插入
- jQuery - contenteditable - 确定图像之前还是之后的插入符号
- 有趣的插入用户名查询
- 是否可以在不轮询的情况下观看文本区域中的插入符号位置
- 内容中的插入符号定位包含 dom 图像的可编辑
- 在 Meteor 中,如何使表单加载从先前从 MongoDB 集合中提取的插入对象预填充
- 循环只插入最后的值