Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用PHP将动态HTML元素插入数据库?_Javascript_Php_Html_Database_Forms - Fatal编程技术网

Javascript 如何使用PHP将动态HTML元素插入数据库?

Javascript 如何使用PHP将动态HTML元素插入数据库?,javascript,php,html,database,forms,Javascript,Php,Html,Database,Forms,我在提交HTML表单时遇到一些问题。表单允许用户使用按钮向HTML页面添加技能。然后需要将这些新创建的技能插入数据库。问题是,我一次只能插入一项技能。技能作为复选框输入,所有选中的技能都应输入数据库。我认为我的问题是,动态创建的每个复选框共享相同的$skill\u name变量,但当我从数据库中获取现有技能以显示时,这不是问题。我添加了一些ajax,试图在post语句中保存创建的每项技能,但当我实际转到insert时,这并没有帮助。INSERT语句如下所示: if(!empty($_POST["

我在提交HTML表单时遇到一些问题。表单允许用户使用按钮向HTML页面添加技能。然后需要将这些新创建的技能插入数据库。问题是,我一次只能插入一项技能。技能作为复选框输入,所有选中的技能都应输入数据库。我认为我的问题是,动态创建的每个复选框共享相同的$skill\u name变量,但当我从数据库中获取现有技能以显示时,这不是问题。我添加了一些ajax,试图在post语句中保存创建的每项技能,但当我实际转到insert时,这并没有帮助。INSERT语句如下所示:

if(!empty($_POST["backend"])){

    $backend = $_POST["backend"];


    $sql2 = "INSERT INTO skill (skill_cat_id, skill_name) VALUES (?,?)";
    $skill_cat_id = 1;

    for ($i = 0; $i < count($backend); $i++){
        $skill_name = $_POST["skill_name"];
        if($stmt = $mysqli->prepare($sql2)){
        $stmt->bind_param("is", $skill_cat_id, $backend[$i]);
        if ($stmt->execute()) {

            echo "<script>
            alert('Success!'); 
            </script>";
        }
        else{
            echo "<script>
            alert('Failure!');

            </script>";
        }
        }
    }
}
     <h5>Backend Technologies </h5>
            <div class="container">
            <div id = "backendDiv">
            <?php
            $backend=getbackendtech();
            while($row = $backend -> fetch_assoc()) {
            //    echo "<input type='checkbox' value='{$data['skill_name']}'>". $data['skill_name'];
            echo "<div class=\"list-group-item checkbox\" id = \"backendCheckBoxes\">
            <label><input type=\"checkbox\" name=\"backend[]\" class=\"common_selector form\" value='{$row['skill_name']}'>&nbsp;{$row['skill_name']}</label>
            </div>";
            }
            echo"<input type=\"button\" class='btn btn-warning btn-sm' id = \"addBackendButton\" value = \"Add\" onclick=\"addSkill('backendCheckBoxes', 'backendDiv', 'backend', 'addBackendButton')\">";
         ?>
         </div>
        </div>
if(!empty($\u POST[“backend”])){
$backend=$_POST[“backend”];
$sql2=“插入技能(技能类别id、技能名称)值(?,)”;
$skill\u cat\u id=1;
对于($i=0;$iprepare($sql2)){
$stmt->bind_param(“is”、$skill_cat_id、$backend[$i]);
如果($stmt->execute()){
回声“
警惕(“成功!”);
";
}
否则{
回声“
警报(“故障!”);
";
}
}
}
}
的HTML如下所示:

if(!empty($_POST["backend"])){

    $backend = $_POST["backend"];


    $sql2 = "INSERT INTO skill (skill_cat_id, skill_name) VALUES (?,?)";
    $skill_cat_id = 1;

    for ($i = 0; $i < count($backend); $i++){
        $skill_name = $_POST["skill_name"];
        if($stmt = $mysqli->prepare($sql2)){
        $stmt->bind_param("is", $skill_cat_id, $backend[$i]);
        if ($stmt->execute()) {

            echo "<script>
            alert('Success!'); 
            </script>";
        }
        else{
            echo "<script>
            alert('Failure!');

            </script>";
        }
        }
    }
}
     <h5>Backend Technologies </h5>
            <div class="container">
            <div id = "backendDiv">
            <?php
            $backend=getbackendtech();
            while($row = $backend -> fetch_assoc()) {
            //    echo "<input type='checkbox' value='{$data['skill_name']}'>". $data['skill_name'];
            echo "<div class=\"list-group-item checkbox\" id = \"backendCheckBoxes\">
            <label><input type=\"checkbox\" name=\"backend[]\" class=\"common_selector form\" value='{$row['skill_name']}'>&nbsp;{$row['skill_name']}</label>
            </div>";
            }
            echo"<input type=\"button\" class='btn btn-warning btn-sm' id = \"addBackendButton\" value = \"Add\" onclick=\"addSkill('backendCheckBoxes', 'backendDiv', 'backend', 'addBackendButton')\">";
         ?>
         </div>
        </div>
后端技术

你打开了吗?您应该会看到一个“未定义索引”通知:
$skill\u name=$\u POST[“skill\u name”]
。没有名为
skill\u name
的输入。右边应该有
$backend[$i]
。您正在迭代数组,但从未使用数组中的任何值。好吧,我可能把一些旧代码和一些新代码混在一起了。我曾经有一个名为skill_name的隐藏字段,但这只允许我在提交表单时一次发布一项技能。现在,当我尝试在for循环中将$skill_名称作为$backend[$I]插入时,我得到了一个php错误致命错误:未捕获错误:只能通过引用传递变量。请使用更改后的代码编辑问题,并指定此错误确切出现的位置。我将代码更改为插入$backend[$I]作为skill_name,我说过错误发生在这里,当我尝试将参数$backend[$I]绑定到skill_name列时。