2017-05-31 29 views
0

产品列表是使用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']."&nbsp;&nbsp;<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> 

回答

0

我不知道你的理由来使用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; 
}