Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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
Php 我试图将多个复选框传递到$u POST页面,并将数据保存到数据库_Php_Arrays_Post - Fatal编程技术网

Php 我试图将多个复选框传递到$u POST页面,并将数据保存到数据库

Php 我试图将多个复选框传递到$u POST页面,并将数据保存到数据库,php,arrays,post,Php,Arrays,Post,我有多个复选框条目需要传递到$\u POST页面,将每个复选框中的多个选项分开,并将这些答案传递到数据库 我已经能够从复选框中抓取数据并分离出数据、位置,但只有最后选中的复选框才会记录在数据库中 这是保存复选框数据的代码,它将在数据库中生成尽可能多的帮助数据,并允许用户选择所有或部分内容: echo "<table class='p'>"; echo "<tr>"; echo "<td class='z'>Story Name</td>";

我有多个复选框条目需要传递到$\u POST页面,将每个复选框中的多个选项分开,并将这些答案传递到数据库

我已经能够从复选框中抓取数据并分离出数据、位置,但只有最后选中的复选框才会记录在数据库中

这是保存复选框数据的代码,它将在数据库中生成尽可能多的帮助数据,并允许用户选择所有或部分内容:

echo "<table class='p'>";

echo "<tr>";

echo "<td class='z'>Story Name</td>";

echo "<td class='z'>Email</td>";

echo "</tr>";

while($row = mysqli_fetch_assoc($result)) { 
   $st_name = $row['st_name'];

   $email = $row['email']

echo "<tr>";

echo "<td class='b'>".$st_name."</td>";

echo "<td><input type='checkbox' name='checkbox[]' class='checkboxes' value='$row[st_id],$row[g_id]' >" .$email."</td>";
echo "</tr>";

};

echo "<br>";

echo "</table>";
echo”“;
回声“;
呼应“故事名”;
回应“电子邮件”;
回声“;
而($row=mysqli_fetch_assoc($result)){
$st_name=$row['st_name'];
$email=$row['email']
回声“;
回声“$st_name.”;
回显“$email”;
回声“;
};
回声“
”; 回声“;
以下是$u POST数据:

if($_SERVER["REQUEST_METHOD"] == "POST"){

if(isset($_POST['checkbox'])){

foreach ($_POST['checkbox'] as $value);{
$breakout = $value;
list($st_id, $g_id) = explode(',', $breakout);
//echo "story".trim($st_id) ."-"."guest". trim($g_id). "<br>";



    $sql = "INSERT INTO gs (id, st_id, userid) VALUES (?, ?, ?)";


            if($stmt = mysqli_prepare($db, $sql)){
            // Bind variables to the prepared statement as parameters
            mysqli_stmt_bind_param($stmt, "sss", $param_id, $param_st_id, $param_g_id);

            $param_id = $id;
            $param_st_id = $st_id;
            $param_g_id = $g_id;

            // Attempt to execute the prepared statement
            if(mysqli_stmt_execute($stmt)){
                // Redirect to start page
                header("location: sharestory.php");

            } else{
                echo "Something went wrong. Please try again later.";
                  }

            }
}
}
         // Close statement
        mysqli_stmt_close($stmt);


        // Close statement
        //mysqli_stmt_close($stmt);


   mysqli_close($db);
}
if($\u服务器[“请求\u方法”]=“发布”){
如果(isset($_POST['checkbox'])){
foreach($_POST['checkbox']作为$value){
$breakout=$value;
列表($st_id,$g_id)=分解(',',$breakout);
//回声“故事”。修剪($st_id)。”-““客人”。修剪($g_id)。”
”; $sql=“插入gs(id、st_id、userid)值(?,?)”; 如果($stmt=mysqli_prepare($db,$sql)){ //将变量作为参数绑定到准备好的语句 mysqli_stmt_bind_param($stmt,$sss,$param_id,$param_st_id,$param_g_id); $param_id=$id; $param_st_id=$st_id; $param_g_id=$g_id; //尝试执行准备好的语句 如果(mysqli_stmt_execute($stmt)){ //重定向到起始页 标题(“位置:sharestory.php”); }否则{ echo“出现问题。请稍后再试。”; } } } } //结束语 mysqli_stmt_close($stmt); //结束语 //mysqli_stmt_close($stmt); mysqli_close($db); }
我再次记录了最后一个复选框,但没有记录任何其他复选框数据。

您已经写入:

foreach ($_POST['checkbox'] as $value);{
其中的分号表示立即终止
foreach
块。然后,
{
启动一个代码块,与
foreach
完全分离,并将
$value
设置为复选框列表中的最后一个值


只要删除
,您就应该很好了。

如果这为您解决了问题,请接受答案,以便其他人知道问题已经解决。