Php 在复选框中提交输入文本

Php 在复选框中提交输入文本,php,html,codeigniter,Php,Html,Codeigniter,我想提交一个表单,当选中当前行复选框时,该表单将发布输入文本字段 当我提交时,我会得到复选框的productID,但不包括所有productLink。我只想获得相应复选框的输入文本 我该怎么办 <form action="process.php" method="post"> <table> <tr> <td><input type="checkbox" name="productId[]"

我想提交一个表单,当选中当前行复选框时,该表单将发布输入文本字段

当我提交时,我会得到复选框的productID,但不包括所有productLink。我只想获得相应复选框的输入文本

我该怎么办

<form action="process.php" method="post">
    <table>
        <tr> 
            <td><input type="checkbox" name="productId[]" value="<?= $products->id; ?>" /> <input type="text" name="productLink[]" /></td>
        </tr><tr>
            <td><input type="checkbox" name="productId[]" value="<?= $products->id; ?>" /> <input type="text" name="productLink[]" /></td>
        </tr><tr>
            <td><input type="checkbox" name="productId[]" value="<?= $products->id; ?>" /> <input type="text" name="productLink[]" /></td>
        </tr><tr>
            <td><input type="checkbox" name="productId[]" value="<?= $products->id; ?>" /> <input type="text" name="productLink[]" /></td>
        </tr><tr>
            <td><input type="checkbox" name="productId[]" value="<?= $products->id; ?>" /> <input type="text" name="productLink[]"  /></td>
        </tr>
    </table>
    <input type="submit" name="formSubmit" value="Submit" />
</form>


你可以找到很多解决方案,所以我认为你应该看看这个

您不能这样做,但有一些替代方法,例如,当用户选中复选框时,您可以调用javascript函数创建一个数组并将json字符串化数据发送到php

另一种方式如下

在html中

<form  method="post">
 <table>
   <tr>
    <td><input type="checkbox" name="productId[]" value="<?= $products->id; ?>" /> <input type="text" name="productLink[<?= $products->id; ?>"]"></td>
   </tr>
   <tr>
    <td><input type="checkbox" name="productId[]" value="<?= $products->id; ?>" /> <input type="text" name="productLink[<?= $products->id; ?>"]"></td>
   </tr>
   <tr>
    <td><input type="checkbox" name="productId[]" value="<?= $products->id; ?>" /> <input type="text" name="productLink[<?= $products->id; ?>"]"></td>
   </tr>
   <tr>
    <td><input type="checkbox" name="productId[]" value="<?= $products->id; ?>" /> <input type="text" name="productLink[<?= $products->id; ?>"]"></td>
   </tr>
   <tr>
    <td><input type="checkbox" name="productId[]" value="<?= $products->id; ?>" /> <input type="text" name="productLink[<?= $products->id; ?>"]"></td>
   </tr>
  </table>
  <input type="submit" name="formSubmit" value="Submit" />
</form>

我希望这可以帮助您..

通过以下代码更新您的

HTML

<form action="process.php" method="post">
    <table>
        <tr> 
            <td> 
                <input type="checkbox" name="productId[1]" value="<?=$products->id;?>" <?=  set_checkbox('productId[1]', $products->id);?> />
                <input type="text" name="productLink[1]" value="<?=  set_value('productLink[1]');?>"/>
            </td>
        </tr><tr>
            <td>
                <input type="checkbox" name="productId[2]" value="<?=$products->id;?>" <?=  set_checkbox('productId[2]', $products->id);?> />
                <input type="text" name="productLink[2]" value="<?=  set_value('productLink[2]');?>" />
            </td>
        </tr><tr>
            <td>
                <input type="checkbox" name="productId[3]" value="<?=$products->id;?>" <?=  set_checkbox('productId[3]', $products->id);?>/>
                <input type="text" name="productLink[3]" value="<?=  set_value('productLink[3]');?>" />
            </td>
        </tr><tr>
            <td>
                <input type="checkbox" name="productId[4]" value="<?=$products->id;?>" <?=  set_checkbox('productId[4]', $products->id);?> />
                <input type="text" name="productLink[4]" value="<?=  set_value('productLink[4]');?>" />
            </td>
        </tr><tr>
            <td>
                <input type="checkbox" name="productId[5]" value="<?=$products->id;?>" <?=  set_checkbox('productId[5]', $products->id);?> />
                <input type="text" name="productLink[5]" value="<?=  set_value('productLink[5]');?>" />
            </td>    
        </tr>
    </table>
    <input type="submit" name="formSubmit" value="Submit" />
</form>


最后,我使用jquery在对象为空时删除它们


你不能。由于procuctLink是一个数组,所以您将获得所有这些内容。无论如何,您将收到表单中的所有内容。你只需要过滤/选择你需要的东西。您可以选中哪个复选框设置为true,然后获取相应的输入。使用相同的键链接它们->
name=“productId[1]”
/
name=“productLink[1]”
。然后在post上,您可以循环通过复选框键仅获取输入键值我以前的答案可能应该是
谢谢您的帮助。这种方法确实有效,但它并不是我想要的。最后我只是使用了jquery。@EdwinCruz问我谢谢你时你没说,我刚学了一个新函数。我最终只是使用Jquery。
<form action="process.php" method="post">
    <table>
        <tr> 
            <td> 
                <input type="checkbox" name="productId[1]" value="<?=$products->id;?>" <?=  set_checkbox('productId[1]', $products->id);?> />
                <input type="text" name="productLink[1]" value="<?=  set_value('productLink[1]');?>"/>
            </td>
        </tr><tr>
            <td>
                <input type="checkbox" name="productId[2]" value="<?=$products->id;?>" <?=  set_checkbox('productId[2]', $products->id);?> />
                <input type="text" name="productLink[2]" value="<?=  set_value('productLink[2]');?>" />
            </td>
        </tr><tr>
            <td>
                <input type="checkbox" name="productId[3]" value="<?=$products->id;?>" <?=  set_checkbox('productId[3]', $products->id);?>/>
                <input type="text" name="productLink[3]" value="<?=  set_value('productLink[3]');?>" />
            </td>
        </tr><tr>
            <td>
                <input type="checkbox" name="productId[4]" value="<?=$products->id;?>" <?=  set_checkbox('productId[4]', $products->id);?> />
                <input type="text" name="productLink[4]" value="<?=  set_value('productLink[4]');?>" />
            </td>
        </tr><tr>
            <td>
                <input type="checkbox" name="productId[5]" value="<?=$products->id;?>" <?=  set_checkbox('productId[5]', $products->id);?> />
                <input type="text" name="productLink[5]" value="<?=  set_value('productLink[5]');?>" />
            </td>    
        </tr>
    </table>
    <input type="submit" name="formSubmit" value="Submit" />
</form>
public function some_func_name(){
    if($this->input->post()){
        $checkbox = $this->input->post('productId');
        $textbox = $this->input->post('productLink');
        $selected = @array_intersect_key($textbox, $checkbox);

        echo '<pre>';
        print_r($selected);
    }
}
    $(document).ready(function(){
    $("form").submit(function(){
    $("input").each(function(index, obj){
          if($(obj).val() == "") {
               $(obj).remove();
              }
            });
      });
    });