从多个表中获取php复选框数据

时间:2017-04-25 13:00:09

标签: php checkbox

首先,我将告诉我想要实现的目标,然后我将解释我是如何尝试的。 我有两个表,一个存储类型的船只有描述和他们自己的Id。然后我有另一张表,其中船只类型已存储为文本。我的目标是选择每一个(两个表中的两个记录),并在两个表中选中一个复选框,并将表1中的Id存储在表1中。 我将介绍数据,以帮助。 表1
     1|Balandra|Some description 2|Bergantin|Some description 3|Whatever |Whatever.....

表2 Balandra Bergantin Whatever

然后,我创建了一个php页面,其中显示了两个带有上面提到的复选框的表格。复选框存储Table1 Id和Table2 vesseltypename。

<table class="table table-striped table-bordered table-list">
<thead>
<tr>
<th><em class="fa fa-cog"></em></th>
<th class="hidden-xs">idtiponavio</th>
<th>Tipo de Navío</th>
<th>Descripción</th>
<th>Agrupar</th>
</tr> 
</thead>
<tbody>

 <?php foreach ($naviosdyncoop as $key => $navio) { ?>
                  <tr>
                      <td align="center">
                        <a href=<?php echo '../vista/modificar.php?id=' . 
    $navio['idtiponavio'];  ?> class="btn btn-default"><em class="fa fa-
    pencil"></em></a>
                        <a href=<?php echo '../datos/borrar.php?id=' . 
    $navio['idtiponavio'];  ?> class="btn btn-default"><em class="fa fa-
    trash"></em></a>
    </td>
    <td class="hidden-xs"><?php echo 
    $navio['idtiponavio']; ?></td>
    <td><?php echo $navio['tiponavio']; ?></td>
    <td><?php echo $navio['descripcion']; ?></td>
    <td><input type="checkbox" name="agruparid" value=<?
    php echo $navio['idtiponavio']; ?> /></td>

                  </tr>
                <?php } ?>

            </tbody>
          </table>
        </div>

       </div>
       <div class="col-md-6">
<div class="panel-body paneltodo">
          <table class="table table-striped table-bordered table-list">
            <thead>
              <tr>
                <th><em class="fa fa-cog"></em></th>
                <th>Tipo de Navío</th>
                <th>Agrupar</th>
              </tr> 
            </thead>
            <tbody>

                <?php foreach ($naviosforsea as $key => $navio) { ?>
                  <tr>
                      <td align="center">
                        <a href=<?php echo $navio['typevessel']; ?> class="btn btn-default"><em class="fa fa-arrow-circle-o-left"></em></a>
                        </td>
                      <td><?php echo $navio['typevessel']; ?></td>
                      <td><input type="checkbox" name="agruparvessel" value=<?php echo $navio['typevessel']; ?> /></td>

                  </tr>
                <?php } ?>

            </tbody>
          </table>

所以,我想检查两个表记录并将table1 Id存储在table2 idtypevessel字段中。 我认为一个php文件可以存储这两个项目并使用这些参数调用更新函数,如下所示:

<?php
require './modelo.php';
$idnavio = $_GET['agruparid'];
$vessel = $_GET['agruparvessel'];

任何建议,因为我认为我必须按一个按钮来提交这些参数,但它必须在两个表上工作,而且我不知道如何同时访问两个foreach循环时间。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

电子。萨拉斯

查看以下参考代码以提交多个选中的复选框值 对于多选复选框提交,您必须在html

中的名称属性后使用[]运算符

<强>的index.php

<form action="/checkbox.php" method="post">
    <strong>Cars:</strong><br>
    <?php  
    $cars = array("Volvo", "BMW", "Toyota");
    $colors = array("Red", "Green", "Black");
    foreach($cars as $single){
        ?>
        <input type="checkbox" name="cars[]" value="<?php echo $single; ?>">
        <?php
    }
    <br>
    <strong>colors:</strong><br>
    foreach($colors as $single){
        ?>
        <input type="checkbox" name="colors[]" value="<?php echo $single; ?>">
        <?php
    }
    ?>
    <br>
    <input type="submit" value="Submit!">
</form>

<强> checkbox.php

<?php
echo "<pre>";
var_dump($_POST);
exit;

在您的情况下:

<form action="/checkbox.php" method="post">
    <div class="col-md-6">
        <div class="panel-body">
            <table class="table table-striped table-bordered table-list">
                <thead>
                    <tr>
                        <th><em class="fa fa-cog"></em></th>
                        <th class="hidden-xs">idtiponavio</th>
                        <th>Tipo de Navío</th>
                        <th>Descripción</th>
                        <th>Agrupar</th>
                    </tr> 
                </thead>
                <tbody>
                <?php foreach ($naviosdyncoop as $key => $navio) { ?>
                    <tr>
                        <td align="center">
                            <a href=<?php echo '../vista/modificar.php?id=' . $navio['idtiponavio'];  ?> class="btn btn-default"><em class="fa fa-pencil"></em></a>
                            <a href=<?php echo '../datos/borrar.php?id=' . $navio['idtiponavio'];  ?> class="btn btn-default"><em class="fa fa-trash"></em></a>
                        </td>
                        <td class="hidden-xs"><?php echo $navio['idtiponavio']; ?></td>
                        <td><?php echo $navio['tiponavio']; ?></td>
                        <td><?php echo $navio['descripcion']; ?></td>
                        <td><input type="checkbox" name="agruparid[]" value=<?php echo $navio['idtiponavio']; ?> /></td>
                    </tr>
                <?php } ?>
                </tbody>
            </table>
        </div>
    </div>
    <div class="col-md-6">
        <div class="panel-body">
            <table class="table table-striped table-bordered table-list">
                <thead>
                    <tr>
                        <th><em class="fa fa-cog"></em></th>
                        <th>Tipo de Navío</th>
                        <th>Agrupar</th>
                    </tr> 
                </thead>
                <tbody>
                <?php foreach ($naviosforsea as $key => $navio) { ?>
                    <tr>
                        <td align="center">
                        <a href=<?php echo $navio['typevessel']; ?> class="btn btn-default"><em class="fa fa-arrow-circle-o-left"></em></a>
                        </td>
                        <td><?php echo $navio['typevessel']; ?></td>
                        <td><input type="checkbox" name="agruparvessel[]" value=<?php echo $navio['typevessel']; ?> /></td>
                    </tr>
                <?php } ?>

                </tbody>
            </table>
        </div>
    </div>
    <input type="submit" value="Submit!">
</form>

答案 1 :(得分:0)

最后我用Javascript解决了这个问题。我的一位合伙人帮助了我,我发布这篇文章是为了帮助处理我的情况。 我创建了一个脚本,这里是代码:

<script type="text/javascript">

function cogeNavioDyncoopnet(){
var checkedValueNavioD = null; 
var inputElements = document.getElementsByClassName('checknaviod');
for(var i=0; inputElements[i]; ++i){
      if(inputElements[i].checked){
           checkedValueNavioD = inputElements[i].value;
           break;
      }
    }//return checkedValueNavioD;
    var input_nav_dyn = document.getElementById("nav_dyn");
        input_nav_dyn.value = checkedValueNavioD;
}
function cogeNavioForSea(){
var checkedValueNavioFs = null; 
var inputElements = document.getElementsByClassName('checknaviofs');
for(var i=0; inputElements[i]; ++i){
      if(inputElements[i].checked){
           checkedValueNavioFs = inputElements[i].value;
           break;
      }
    }//return checkedValueNavioFs;
    var input_nav_fs = document.getElementById("nav_fs");
        input_nav_fs.value = checkedValueNavioFs;
}
</script>

然后我在下面创建了一个表单,它收集值并将它们发送到我的.php控制文件。

<div class="hidden-xs">
<form class="hidden-xs" method="POST" 
action="../datos/actualizarnavios.php">
    <input id="nav_dyn" type="text" name="idnaviodyncoop">
    <input id="nav_fs" type="text" name="navioforsea" >
    <input id="botonasignar" type="submit" name="enviardatosdynfs">
</form>
</div>

我希望这会有所帮助。感谢您的反馈,一如既往。