如果由js创建,如何在php中获取文本框值

时间:2018-02-05 05:27:58

标签: php

我正在使用以下代码在标签点击上生成多个文本框,它可以正常工作,并使用不同的名称创建多个文本框。我想在php端获取textbox的值并为每个文本框运行insert查询。但我不知道如何在PHP中使用它。这是我的代码plz帮助。

<html>
<head>
<title>

</title>
<script>
   var index = 1;
    function insertRow(){
        var table=document.getElementById("rep1");
        var row=table.insertRow(table.rows.length);
        var cell1=row.insertCell(0);
        var t1=document.createElement("input");
            t1.id = "txtName"+index;
            t1.name = "txtName"+index;
            cell1.appendChild(t1);
   index++;
}
</script>
</head>
<body>
<label id="btnAdd" style=" width: 10px;" class="button-add" onclick="insertRow();">add</label>
<table  id="rep1">

</table>
</body>
</html>

SQL架构:

T_no(AI)     Text_value

PHP代码:

 <?php
 if(isset($_POST["submit"]))
 {
     $t1=$_POST['name'];// i am confused here how to take value and run query for all
 ?>        

3 个答案:

答案 0 :(得分:2)

客户端代码

您必须将<script> var index = 1; function insertRow(){ var table=document.getElementById("rep1"); var row=table.insertRow(table.rows.length); var cell1=row.insertCell(0); var t1=document.createElement("input"); t1.id = "txtName"+index; t1.name = "txtName[]"; //Use array of names not id cell1.appendChild(t1); index++; } </script> 用于多个名称字段

$_POST['txtName'];

请检查How to get form input array into PHP array

您可以使用<?php if(isset($_POST["submit"])) { $t2=$_POST['txtName']; $query_parts = array(); $qu = "INSERT INTO try VALUES"; foreach($t2 as $val) { $query_parts[] = "('', '" . $val . "')"; } $qu .= implode(',', $query_parts); $res=mysqli_query($con,$qu); if(!$res) { echo("Error description: " . mysqli_error($con)); } } ?> 或任何其他请求方法

来获取这些阵列服务器端

将数组插入数据库的服务器端编码

{{1}}
  

上面的代码不会阻止来自SQl injection的数据。您可以使用预准备语句来防止PHP中的SQL注入。 Link

答案 1 :(得分:1)

使用此代码。它会帮助你。

<?php 
print_r($_POST['txtName']); // Here you can get you all values.
?>
<html>
<head>
<title>

</title>
<script>
   var index = 1;
    function insertRow(){
        var table=document.getElementById("rep1");
        var row=table.insertRow(table.rows.length);
        var cell1=row.insertCell(0);
        var t1=document.createElement("input");
            t1.id = "txtName"+index;
            t1.name = "txtName[]"; // Use array in textbox name..
            cell1.appendChild(t1);
   index++;
}
</script>
</head>
<body>
    <form method="POST" action="" >
        <label id="btnAdd" style=" width: 10px;" class="button-add" onclick="insertRow();">add</label>
        <table  id="rep1">

        </table>
        <input type="submit">
    </form>
</body>
</html>

答案 2 :(得分:1)

为此你必须存储总索引值(应该指定你创建输入字段的时间)。之后你的php代码应该如下所示..

PHP代码:

 <?php
     if(isset($_POST["submit"]))
     {
     $t1=$_POST['txtName'.$index]; 
     ?>  

索引变量将是您的循环中当前索引值的总输入字段长度