通过选中复选框字符串到PHP页面从javascript
问题描述:
产品列表是使用PHP代码创建的每个产品都有自己的复选框,我已经使用Java脚本代码来获取所有选中复选框的值现在我需要调用其他PHP页面将接收此字符串数据并填充所有选定的产品列表。你可以告诉我,我可以使用JavaScript POST方法发送数据到另一个PHP页面的方式。通过选中复选框字符串到PHP页面从javascript
代码用于创建产品列表,并获得选择的复选框的值如下:
<?php
$cnt=0;
$rslt = mysqli_query($conn,"SELECT Icode,Name,Size,Style FROM productinfo");
if(!$rslt)
{
die(mysqli_error($conn));
}
else
{
echo " <table width='100%'>";
while($row = mysqli_fetch_assoc($rslt))
{
if($cnt==0)
{
echo "<tr>";
}
echo "<td width='30%'>
<div class='card'>
<img src='upload/"."download.jpg"."' alt='Avatar' style='width:100px' >
<div class='container'>
<h4><b>".$row['Name']." <input type='checkbox' name='prodchklist' value=".$row['Icode']." '/> </b></h4>
<p>".$row['Size']."</p>
<p>".$row['Icode']."</p>
</div>
";
?>
</div>
<?php
echo "</td>";
if($cnt==2)
{
$cnt=0;
echo "</tr>";
}
else
$cnt = $cnt + 1;
}
}
echo "</table>";
?>
</div>
<button id="SendInquiry" style="display: block;">Send Inquiry</button>
<script type='text/javascript'>
$(document).ready(function(){
$('#SendInquiry').click(function(){
var result = $('input[type="checkbox"]:checked');
if (result.length > 0)
{
var resultstring = result.length +"checkboxes are checked";
result.each(function(){
resultstring+=$(this).val();
}
);
$('#divrslt').html(resultstring);
}
else
{
$('#divrslt').html("nothing checked");
}
});
});
</script>
答
我不知道你的理由来使用JavaScript收集复选框值,并将其发布到另一个PHP页面。您可以achive你想要什么无javascript:
裹你一个复选框表单中,设置其到第二页的行动,不要忘记设置它的方法职位名称,例如:
<form action="second.php" method="post">
</form>
认沽[ ]在复选框名称的末尾,使其阵列可以与一个名字发送多个值,例如:
<input type="checkbox" name="prodchklist[]" value="item1">
<input type="checkbox" name="prodchklist[]" value="item2">
<input type="checkbox" name="prodchklist[]" value="item3">
但是,如果你真的想使用Ajax来使用JavaScript调用第二页,例如,这样做:
将选定的值存储在数组中,而不是将每个值附加到一个变量中。
// add this, to store the data you want to post
var data = {
prodchklist: []
};
var result = $('input[type="checkbox"]:checked');
if (result.length > 0)
{
var resultstring = result.length + " checkboxes are checked";
result.each(function(){
resultstring += $(this).val();
}
// add this
data.prodchklist.push($(this).val());
}
Ajax调用期间
然后:
$.post('second.php', data, function(response) {
....
});
在你的第二个PHP文件,只需检索它像往常一样,例如:
$selectedProducts = $_POST['prodchklist'];
这适用于这两种方法(没有javascript和用AJAX)。
$ selectedProducts将是一个数组而不是简单的字符串值。只需迭代该数组即可使用这些值,例如:
foreach ($selectedProducts as $product) {
echo $product;
}