我想提交一个表单,在选中当前行复选框时发布输入文本字段。
当我提交时,我获得了复选框的productID但是所有的productLink。我想只获取相应复选框的输入文本。
我该怎么做?
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<main role='main'>
<div class='counters'>
<p>Question: <span class='js-question-counter'>0</span> / 10</p>
<p>Score: <span class="js-score-counter">0</span></p>
</div>
<div class="quizdiv">
<div class="quizform js-quizform-intro">
<h2>Welcome, Willkommen, Bonjour, Buon giorno, Hola</h2>
<p>Test your knowledge in everything space-related. Just click the button below and start the 10 question quiz.</p>
<div class="controls">
<button role='button' class="button js-quizform-submit">Start Quiz</button>
</div>
</div>
<div class="quizform js-quizform-questions"></div>
<div class="quizform js-feedback-page"></div>
<div class="quizform js-quizform-evaluation"></div>
</div>
</main>
答案 0 :(得分:1)
你可以找到很多解决方案,所以在我看来你应该看看这个
你可以这样做,但是有一些替代方法,例如,当用户选中复选框然后你可以调用javascript函数创建一个数组并发送json stringify数据你的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>
在你的php中(假设在codeigniter中,因为你标记了它)
function some_func_name(){
$product_ids = $this->input->post('productId');
$posted_product_links = $this->input->post('productLink');
$selected_links = [];
for($product_ids as $id){
$p_link = $posted_product_links[$id];
array_push($selected_links, array('id' => $id, 'link' => $p_link));
}
}
我希望这对你有帮助..
答案 1 :(得分:0)
按照以下代码更新您的
<强> 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>
<强>控制器强>
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);
}
}
答案 2 :(得分:0)
我最终使用jquery在它们为空时移除了obj。
$(document).ready(function(){
$("form").submit(function(){
$("input").each(function(index, obj){
if($(obj).val() == "") {
$(obj).remove();
}
});
});
});