Javascript 希望从表单表在MySql中添加值

Javascript 希望从表单表在MySql中添加值,javascript,php,mysql,Javascript,Php,Mysql,我已经试着解决这个问题一段时间了,但还没有找到解决办法。我仍然在学习阶段,这是我的第一个项目,使一个网站的形式从头开始 我有一个表单,其中有一个表,用户可以填写信息并添加新行 我想知道如何将其保存在MySql中。 希望你能帮我 Html代码如下所示 <div class="table-responsive"> <table class="table table-bordered table-hover" id="tab_logic"> <thead>

我已经试着解决这个问题一段时间了,但还没有找到解决办法。我仍然在学习阶段,这是我的第一个项目,使一个网站的形式从头开始

我有一个表单,其中有一个表,用户可以填写信息并添加新行

我想知道如何将其保存在MySql中。

希望你能帮我

Html代码如下所示

<div class="table-responsive">
<table class="table table-bordered table-hover" id="tab_logic">
    <thead>
        <tr>
            <th>#</th>
            <th>Varenavn</th>
            <th>Mengde</th>
            <th>Enhet</th>
            <th>Pris</th>
        </tr>
    </thead>
    <tfoot>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td><a id="add_row" class="btn btn-success pull-right">Add Row</a><a id='delete_row' class="pull-right btn btn-danger">Delete Row</a></td>
        </tr>
    </tfoot>
    <tbody>
       <tr id='addr0'>
            <td>1</td>
            <td><input type="text" name='v_navn0' placeholder='Varenavn' class="form-control" /></td>
            <td><input type="text" name='mengde0' placeholder='Mengde' class="form-control" /></td>
            <td><select name='enhet0' placeholder='Enhet' class='form-control input-md'><option>KG</option><option>GR</option><option>L</option<option>DL</option></select></td>
            <td><input type="text" name='pris0' placeholder='Pris' class="form-control" /></td>
        </tr>
        <tr id='addr1'></tr>
    </tbody>
</table>
这是我的桌子

CREATE TABLE `oppskrift` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `opp_navn` VARCHAR(255) NULL DEFAULT NULL,
    `antall` VARCHAR(255) NULL DEFAULT NULL,
    `holdbarhet` VARCHAR(50) NULL DEFAULT NULL,
    `beskrivelse` TEXT NULL,
    `allergen` VARCHAR(255) NULL DEFAULT NULL,
    `varenavn` VARCHAR(255) NULL DEFAULT NULL,
    `mengde` VARCHAR(255) NULL DEFAULT NULL,
    `enhet` VARCHAR(255) NULL DEFAULT NULL,
    `pris` VARCHAR(255) NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=16
;

您的问题似乎是PHP只检查第一行的变量名。我要做的是用数组替换这个名称,这样我就可以遍历它并获得所有的行。接下来的可能不是最好的方法,但它是有效的:

<div class="table-responsive">
<table class="table table-bordered table-hover" id="tab_logic">
    <thead>
        <tr>
            <th>#</th>
            <th>Varenavn</th>
            <th>Mengde</th>
            <th>Enhet</th>
            <th>Pris</th>
        </tr>
    </thead>
    <tfoot>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td><a id="add_row" class="btn btn-success pull-right">Add Row</a><a id='delete_row' class="pull-right btn btn-danger">Delete Row</a></td>
        </tr>
    </tfoot>
    <tbody>
       <tr id='addr0'>
            <td>1</td>
            <td><input type="text" name='v_navn0' placeholder='Varenavn' class="form-control" /></td>
            <td><input type="text" name='mengde[]' placeholder='Mengde' class="form-control" /></td>
            <td><select name='enhet[]' placeholder='Enhet' class='form-control input-md'><option>KG</option><option>GR</option><option>L</option<option>DL</option></select></td>
            <td><input type="text" name='pris[]' placeholder='Pris' class="form-control" /></td>
        </tr>
        <tr id='addr1'></tr>
    </tbody>
</table>

像这样的。我还没有测试过它,但你明白了。

看起来你已经有了一个
INSERT
语句来将数据保存到数据库中。到底是什么不起作用?它将只显示用户输入的第一行。当他们添加新行时不会。它们插入的值将不会上传到服务器。您仅通过
$varenavn=($\u POST[“v\u navn0”])引用第一行。您应该将它放在某种循环中,并作为
$\u POST[“v\u navn0”]
$\u POST[“v\u navn1”]
进行检查,直到达到空值。另外,您应该为每个迭代调用insert,但我不确定它们将放入多少行。如果我必须从0到1000,代码会很长,代码文件会很大。Thx,我会尝试一下,让你知道它是如何运行的!德尔卡诺,成功了,但没有。它插入正确,但只包含第一个插入值,现在它只显示第一个字母而不显示孔字。好的,添加一个
print\r($\u POST);退出并告诉我结果=KG)[pris]=Array([0]=asdad[1]=sadsad[2]=sadasdas))对于示例,我刚刚添加了som值。在我的服务器中,它现在只显示为最后一个输入(数组[2]),而不是所有输入
CREATE TABLE `oppskrift` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `opp_navn` VARCHAR(255) NULL DEFAULT NULL,
    `antall` VARCHAR(255) NULL DEFAULT NULL,
    `holdbarhet` VARCHAR(50) NULL DEFAULT NULL,
    `beskrivelse` TEXT NULL,
    `allergen` VARCHAR(255) NULL DEFAULT NULL,
    `varenavn` VARCHAR(255) NULL DEFAULT NULL,
    `mengde` VARCHAR(255) NULL DEFAULT NULL,
    `enhet` VARCHAR(255) NULL DEFAULT NULL,
    `pris` VARCHAR(255) NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=16
;
<div class="table-responsive">
<table class="table table-bordered table-hover" id="tab_logic">
    <thead>
        <tr>
            <th>#</th>
            <th>Varenavn</th>
            <th>Mengde</th>
            <th>Enhet</th>
            <th>Pris</th>
        </tr>
    </thead>
    <tfoot>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td><a id="add_row" class="btn btn-success pull-right">Add Row</a><a id='delete_row' class="pull-right btn btn-danger">Delete Row</a></td>
        </tr>
    </tfoot>
    <tbody>
       <tr id='addr0'>
            <td>1</td>
            <td><input type="text" name='v_navn0' placeholder='Varenavn' class="form-control" /></td>
            <td><input type="text" name='mengde[]' placeholder='Mengde' class="form-control" /></td>
            <td><select name='enhet[]' placeholder='Enhet' class='form-control input-md'><option>KG</option><option>GR</option><option>L</option<option>DL</option></select></td>
            <td><input type="text" name='pris[]' placeholder='Pris' class="form-control" /></td>
        </tr>
        <tr id='addr1'></tr>
    </tbody>
</table>
$(document).ready(function () {
    var i = 1;
    $("#add_row").click(function () {
        $('#addr' + i).html("<td>" + (i + 1) + "</td><td><input name='v_navn[]' type='text' placeholder='Varenavn' class='form-control input-md'  /> </td><td><input  name='mengde[]' type='text' placeholder='Mengde'  class='form-control input-md'></td><td><select name='enhet[]' placeholder='Enhet'  class='form-control input-md'><option>KG</option><option>GR</option><option>L</option><option>DL</option></select></td</td></td><td><input name='pris[]' type='text' placeholder='Pris' class='form-control input-md'  />");

        $('#tab_logic').append('<tr id="addr' + (i + 1) + '"></tr>');
        i++;
    });
    $("#delete_row").click(function () {
        if (i > 1) {
            $("#addr" + (i - 1)).html('');
            i--;
        }
    });

 });
// Create connection
$conn = new mysqli($servername, $username, $password, $db);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

// definding names
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$navn = ($_POST["navn"]);
$antall = ($_POST["antall"]);
$holdbar = ($_POST["holdbar"]);
$fremgang = ($_POST["fremgang"]);
$allergen = ($_POST["allergen"]);
$varenavn = ($_POST["v_navn"]);
$mengde = ($_POST["mengde"]);
$enhet = ($_POST["enhet"]);
$pris = ($_POST["pris"])     
}

// Query
foreach($varenavn as $i => $var) {
    $sql = "INSERT INTO oppskrift (opp_navn, antall, holdbarhet, beskrivelse, allergen, varenavn, mengde, enhet, pris)
VALUES ('$navn', '$antall', '$holdbar', '$fremgang', '$allergen', '$varenavn[$i]', '$mengde[$i]', '$enhet[$i]', '$pris[$i]')";
    if ($conn->query($sql) !== TRUE) {
         echo "Something went wrong. Please try again later.";
    }
}
// Redirect to login page
header("location: /bin/appdata/ny_opp.php");

$conn->close();
?>