这是我的javascript和php代码,也是一个表单。如何为table中的多个动态文本框插入值。请告诉我如何在查询中插入数组以插入值 查询我的代码。
<?
if(isset($_POST['submit']) && $_POST['submit']=="Submit")
{
$filter_attr=$_POST['filter_attr'];
$query=mysql_query("insert into filter (filter_attr,addedon)values ('".$filter_attr."','".date("Y-m-d H:i:s")."')");
}
?>
<script language="javascript">
var i = 1;
function changeIt()
{
my_div.innerHTML = my_div.innerHTML +"<br><input type='text' size='70' id='filter_attr' name='filter_attr'+ i>"
i++;
}
</script>
<tr height="20"></tr>
<tr height="25">
<td width="30%">Filter Attribute</td>
<td width="50%"><input type="text" name="filter_attr" size="70" id="filter_attr" filter="50"><div id="my_div"></div></td>
<td width="20%"> <input type="button" value="ADD" onClick="changeIt()"></td>
</tr>
</table>
</form>
答案 0 :(得分:1)
只是演示如何实现它
$postedData=$_POST;
$keys = implode(',', array_keys($postedData));
$values = implode(',', $postedData);
$query=mysql_query("insert into filter ('".$keys."',addedon)values ('".$values."','".date("Y-m-d H:i:s")."')");
}
?>
代码未经过测试,因此请注意
答案 1 :(得分:1)
@Vidhipriya Joshi,您应该对现有代码进行一些更改,如下所示: 在HTML文件中,您可以:
<input type="text" name="filter_attr[]" size="70" id="filter_attr" filter="50">
注意:name属性是一个存储所有输入值的数组,在js和php文件中也是如此。
建议:最好使用jquery append function
取代innerHTML。
请参阅链接以获取更多指导..
Add/Remove Input Fields Dynamically in php
希望它能满足你的需求.. :)
答案 2 :(得分:1)
只需修改您的JS脚本
<script language="javascript">
var i = 1;
Function changed ()
{
my_div.innerHTML = my_div.innerHTML +"<br><input type='text' size='70' id='filter_attr[]' name='filter_attr'+ i>"
i++;
}
</script>
提交表单后,您将获得php中的filter_attr
试试这个。
答案 3 :(得分:1)
这是用于处理表单的PHP:
<?php
// before form submitted $_POST has a null value
if( isset($_POST) && $_POST != null) {
$post = $_POST['filter_attr'];
// assuming an input contains only alphabetical characters
if ( ctype_alpha( $post ) || is_array( $post ) ) {
// var_dump($post);
// rest of processing, i.e. create insert query ...
}
else
{
// the data is unacceptable, so you may wish to end the script.
exit;
}
}
?>
这是JavaScript:
<script language="javascript">
var i = 1;
function changeIt()
{
var d = document;
d.getElementById("my_div").innerHTML += "<br>";
d.getElementById("my_div").innerHTML += "<input type='text' size='70' id='filter_attr" + i + "' name='filter_attr[]'><br>";
i++;
}
</script>
如果静态和动态输入的name属性为“filter_attr []”,PHP将识别提交的表单包含filter_attr数据数组。但是,如果您希望JavaScript使用document.getElementById
访问它,则ID必须是唯一的。因此,第一个动态输入的id为“filter_attr1”,名称为“filter_attr []”。
请注意:
最好写:
document.getElementById("my_div")
比直接使用ID或名称(请参阅Why don't we just use element IDs as identifiers in JavaScript?上的讨论)
使用DOM及其方法创建动态输入是可取的。如果您愿意,可以使用jQuery简化DOM的使用。
上面的HTML似乎缺少提交按钮。但是,即使它存在于实际代码中,以下代码也不起作用:
if(isset($ _POST ['submit'])&amp;&amp; $ _POST ['submit'] ==“Submit”){
当表单通过POST或GET请求提交时,提交的内容是键值对数据,即来自表单元素的数据,用户必须提供某种响应,无论是文本还是标记复选框或单选按钮。提交按钮有助于提交数据,但如果您没有提到名称,则其本身不会被提交,并且名称必须与其类型相同,即“提交”。我恭敬地建议我之前的PHP代码做出的回答问题的方式,“是否提交了一个表单?如果是,它是否包含任何数据?”
代码需要假设帖子可能被污染。这意味着您需要在使用之前验证发布的数据。
自PHP5.5起,不推荐使用mysql扩展;见The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead的讨论。
最后,应限制使用HTML TABLE来显示表格数据,不应将其用于布局。相反,使用DIV元素并通过样式化它们可以实现所需的布局。这个结果在语义上是正确的并且可以节省内存。