Scenario :
- Bootstrap 4 form has
- 1 submit button down the bottom
- 2 modals with a submit button in each.
Working Submit buttons :
- Main submit button works.
Add new contractor modal
submit button works.
Make Submit to work :
Add new contractor contact modal
submit button not working.
I have put the shorted code in here but the button not working is at the very bottom and you cant see it because the error message cuts it off.
Here is the jsfiddle version.
//Add new contractor
$("#contractor").change(function () {
if ($(this).val() === 'addnewcon') {
$('#addnewconmodal').modal({show: true});
} else if ($(this).val() !== 'addnewcon') {
$('#addnewconmodal').modal({show: false});
}
});
//Add new contractor contact
$("#contact").change(function () {
if ($(this).val() === 'addnewcontact') {
$('#addnewcontactmodal').modal({show: true});
} else if ($(this).val() !== 'addnewcontact') {
$('#addnewcontactmodal').modal({show: false});
}
});
//Ajax call to get selected contractor
$("#contractor").on('change',function() {
var conselected = $(this).val();
if(conselected != "") {
$.ajax({
url:"ajax.php",
data:{consel_id:conselected},
type:'POST',
success:function(response) {
console.log(response);
var resp = $.trim(response);
$("#contact").html(resp);
console.log(resp);
$("#contact").selectpicker('refresh');
}
});
} else {
$("#contact").html("<option value=''>------- Select --------</option>");
}
});
//Ajax add new contractor
$(".cont_add").click(function() {
$(".selectpicker").selectpicker('refresh');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<?php
if(isset($_POST['add_job'])){
$req_fields = array('location','contractor','length', 'groundc' );
validate_fields($req_fields);
if(empty($errors)){
$j_location = remove_junk($db->escape($_POST['location'])); //checked
$j_startdate = remove_junk($db->escape($_POST['startdate'])); //checked
$n_startdate = date('Y-m-d', strtotime($j_startdate));
$j_address = remove_junk($db->escape($_POST['address'])); //checked
$j_contractor = remove_junk($db->escape($_POST['contractor'])); //checked
$j_contractor_contact = remove_junk($db->escape($_POST['contact'])); //checked
$j_length = remove_junk($db->escape($_POST['length'])); //checked
$j_groundc = remove_junk($db->escape($_POST['groundc'])); //checked
$j_jobstatus = remove_junk($db->escape($_POST['jobstatus'])); //checked
$j_driller = remove_junk($db->escape($_POST['driller'])); //checked
$j_boresize = remove_junk($db->escape($_POST['boresize']));
$j_pipesize = remove_junk($db->escape($_POST['pipesize']));
$j_belowinvert = remove_junk($db->escape($_POST['belowinvert']));
$j_grade = remove_junk($db->escape($_POST['grade']));
$j_centers = remove_junk($db->escape($_POST['centers']));
$j_centraliser = remove_junk($db->escape($_POST['centraliser']));
$j_notes = remove_junk($db->escape($_POST['notes']));
$date = make_date();
if(!isset($_POST['startdate']) || empty($_POST['startdate'])) {
$n_startdate = 'NULL';
} else {
$j_startdate = remove_junk($db->escape($_POST['startdate']));
$n_startdate = date('Y-m-d H:i:s', strtotime($j_startdate));
$n_startdate = sprintf("'%s'", $n_startdate);
}
$query = "INSERT INTO job (job_status_id, start_date, date_added, location, address, driller_id, contractor_id, bore_size,
head_id, cutters_id, pipe_size, length, ground_conditions, shield_size, depth, below_invert, grade, centers, hydrant,
hydrant_type, vacuum_hose, centralisers, notes)";
$query .= "VALUES ('{$j_jobstatus}', {$n_startdate}, '{$date}', '{$j_location}', '{$j_address}', '{$j_driller}', '{$j_contractor}', '{$j_boresize}', '{$j_pipesize}', '{$j_length}', '{$j_groundc}', '{$j_belowinvert}', '{$j_centers}', '{$j_centraliser}', '{$j_notes}')";
if($db->query($query)){
$session->msg('s',"Job added ");
redirect('add_job.php', false);
} else {
$session->msg('d',' Sorry failed to added!');
redirect('jobs.php', false);
}
} else{
$session->msg("d", $errors);
redirect('add_job.php',false);
}
} elseif(isset($_POST['add_cont'])){
$req_fields = array('n_contractor_name');
validate_fields($req_fields);
if(empty($errors)){
$name = remove_junk($db->escape($_POST['n_contractor_name']));
$query = "INSERT INTO contractor (";
$query .="Name";
$query .=") VALUES (";
$query .=" '{$name}'";
$query .=")";
if($db->query($query)){
//sucess
$session->msg('s',"New contractor has been creted! ");
redirect('add_job.php', false);
} else {
//failed
$session->msg('d',' Sorry failed to add contractor!');
redirect('add_job.php', false);
}
} else {
$session->msg("d", $errors);
redirect('add_job.php',false);
}
} elseif(isset($_POST['add_new_contact'])){
$req_fields = array('n_contractor_contact_name', 'n_contractor_contact_number', 'n_contractor_contact_id');
validate_fields($req_fields);
if(empty($errors)){
$contact_name = remove_junk($db->escape($_POST['n_contractor_contact_name']));
$contact_number = remove_junk($db->escape($_POST['n_contractor_contact_number']));
$contact_id = remove_junk($db->escape($_POST['n_contractor_contact_id']));
$query = "INSERT INTO contractor_contact (Name, Number, contractor_id)";
$query .="VALUES ('{$contact_name}','{$contact_number}','{$contact_id}')";
if($db->query($query)){
//sucess
$session->msg('s',"New contractor has been creted! ");
redirect('add_job.php', false);
} else {
//failed
$session->msg('d',' Sorry failed to add contractor!');
redirect('add_job.php', false);
}
} else {
$session->msg("d", $errors);
redirect('add_job.php',false);
}
}
?>
<?php include_once('layouts/header.php'); ?>
<div class="row">
<div class="col-md-12">
<?php echo display_msg($msg); ?>
</div>
</div>
<form method="post" action="add_job.php" class="clearfix">
<!-- Buttons At bottom -->
<div class="row" id="addbuttons">
<div class="col-md-12 col-md-offset-1">
<div class="panel-group">
<div class="panel panel-default">
<div class="panel-heading">
<strong>
<span class="glyphicon glyphicon-th"></span>
<span></span>
</strong>
</div>
<div class="row justify-content-center">
<div class="col-md-2">
<button type="button" name="goback" onclick="goBack()" class="btn btn-danger">Back</button>
<button type="submit" name="add_job" class="btn btn-success">Add job</button>
<div class="help-block with-errors"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Modal add new contractor -->
<div id="addnewconmodal" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="myModalLabel">Add new contractor</h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
</div>
<div class="modal-body">
<form method="post" id="insert_new_contractor">
<input type="hidden" value="add" name="action" id="action">
<div class="col-md-5">
<div class="form-group">
<label for="form_n_contractor_name">Contractor's name</label>
<input id="form_n_contractor_name" type="text" name="n_contractor_name" class="form-control" placeholder="Contractor's name">
<div class="help-block with-errors"></div>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary add_cont" id="add_cont" name="add_cont">Save</button>
</div>
</div>
</div>
</div>
<!-- Modal add new contractor -->
<!-- Modal add new contractor contact -->
<div id="addnewcontactmodal" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="myModalLabel">Add new contact</h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
</div>
<div class="modal-body">
<form method="post" id="insert_new_contractor_contact">
<input type="hidden" value="add" name="action" id="action">
<div class="col-md-5">
<div class="form-group">
<label for="form_n_contractor_contact_id">Contractor ID</label>
<input id="form_n_contractor_contact_id" type="hidden number" name="n_contractor_contact_id" class="form-control" value="<?php echo $con['ID'] ?>">
<div class="help-block with-errors"></div>
</div>
</div>
<div class="col-md-5">
<div class="form-group">
<label for="form_n_contractor_contact_name">Contractor's name</label>
<input id="form_n_contractor_contact_name" type="text" name="n_contractor_contact_name" class="form-control" placeholder="Contractor's name">
<div class="help-block with-errors"></div>
</div>
</div>
<div class="col-md-5">
<div class="form-group">
<label for="form_n_contractor_contact_number">Contractor's number</label>
<input id="form_n_contractor_contact_number" type="tel" name="n_contractor_contact_number" class="form-control" placeholder="Contractor's number">
<div class="help-block with-errors"></div>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary add_new_contact" id="add_new_contact" name="add_new_contact">Save</button>
</div>
</div>
</div>
</div>
<!-- Modal add new contractor contact -->
</form>