I have a form.In which there is a checkbox list under the text boxes. When I click on each checkbox, a modal appears with sub data according to checkbox coming from database. what I want to do is to pass data into database. That have been already done. But the problem is all the sub checkbox values do not go to database. It passes only sub categories of last selected main category into database with other post data. I could not find to what is the wrong with it.
I made a simple form to describe best.
config.php
<?php
$servername = "localhost";
$username = "root";
$password = "";
$db = "mydb";
// Create connection
$conn = mysqli_connect($servername, $username, $password,$db);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
?>
form.php
<body>
<div class="form1">
<form action="passData.php" method="post">
<input type="text" name="name" placeholder="Name"/><br>
<input type="text" name="age" placeholder="age"/><br>
<input type="text" name="address" placeholder="address"/><br>
<input type="checkbox" name="favourite" value="1"/>sports
<input type="checkbox" name="favourite" value="2"/>fruits
<input type="checkbox" name="favourite" value="3"/>colors
<div>
<button class="btn btn-primary" type="submit" name="submit" id="submit">Submit</button>
</div>
</form>
</div>
<!--modal-->
<div id="myModal" class="modal fade" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Modal Header</h4>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
<button class="btn btn-primary btn-fill" id="submit" onclick="submit();" name="submit" >save</button>
</div>
</div>
</div>
</div><!--modal is finished-->
</body>
Image 1
Image 2
modal.php
<?php
if($_POST['value']){
$value = $_POST['value'];
include("config.php");
$sql = "SELECT sub_categories FROM favourite WHERE category_id=".$value." ";
$res = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($res)){
echo "<input class='category' type='checkbox' name='category[]' value ='".$row['sub_categories']."'/>".$row['sub_categories'];
echo "<br>";
}
}
?>
Here is my js file
$(document).ready(function(){
//model
$("input[type=checkbox][name=favourite]").on('change',function(){
if(this.checked) {
var value = $(this).val();
$.ajax({
url:"modal.php",
type:"POST",
data:{value:value},
success:function(modalBody){
$("#myModal .modal-body").html(modalBody);
$("#myModal").modal('show');
}
});
}
});
});
function submit() {
var insert = [];
$('.category:checked').each(function(){
insert.push($(this).val());
});
insert = insert.toString();
$.ajax({
url:'insert.php',
type:'POST',
data:{insert:insert},
success:function(){
alert('success');
$("#myModal").modal('hide');
}
});
}
when I click save button on modal, selected checkbox values pass to insert.php file and store in session variable.
insert.php
<?php
session_start();
$_SESSION['insert']=$_POST['insert'];
?>
After click on submit button all post data pass into passData.php
passData.php
<?php
session_start();
include('config.php');
if(isset($_POST['submit'])){
$name=$_POST['name'];
$age=$_POST['age'];
$address=$_POST['address'];
$sql= "INSERT INTO students(name,age,address,favourite) VALUES('$name',
'$age',
'$address',
'".$_SESSION['insert']."');" ;
$result=mysqli_query($conn,$sql);
}
?>
I try to show you my idea, hope you can understand. Thank you!
Aucun commentaire:
Enregistrer un commentaire