0

A Product List is created using the PHP code each product having its own checkbox, I have used the Java Script code to get values of all the selected checkboxes now i need to call an other PHP page which will receive this string data and populate all the selected products list. Can you please tell me the way i can use to send data to another php page using javascript POST method.

Code used to create the product list and get value of selected checkboxes is as follows :

<?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

1 Answer 1

1

I don't know your reason to use javascript for collecting checkbox values and post it to another PHP page. You can achive what you want without javascript:

Wrap you checkboxes inside a form, set its action to second page, and don't forget to set its method to POST, eg:

<form action="second.php" method="post">
</form>

Put [] at the end of checkbox name to make it array that can send multiple values with one name, eg:

<input type="checkbox" name="prodchklist[]" value="item1">
<input type="checkbox" name="prodchklist[]" value="item2">
<input type="checkbox" name="prodchklist[]" value="item3">

But, if you really want to use javascript to call the second page, for example by using ajax, do this:

Store the selected values in an array, instead of appending each values in one variable.

// 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());
}

Then during ajax call:

$.post('second.php', data, function(response) {
    ....
});

In your second PHP file, just retrieve it as usual, eg:

$selectedProducts = $_POST['prodchklist'];

This works for both approach (without javascript and with ajax).

$selectedProducts will be an array instead of simple string value. Just iterate the array to use the values, eg:

foreach ($selectedProducts as $product) {
    echo $product;
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.