Last active
August 29, 2015 14:26
-
-
Save pipiscrew/3bb8a7abfea372dc7745 to your computer and use it in GitHub Desktop.
using davidstutz bootstrap-multiselect via PHP
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//more simply examples http://www.pipiscrew.com/2015/06/bootstrap-select-mutliselect/ | |
////////////////////////[index.php] | |
<?php | |
//convert recordset to 1D array (will use it, to mark the multi-selects @ JS) | |
function get_array_by_set($db_set) | |
{ | |
$rec_children = array(); | |
foreach($db_set as $row) { | |
$rec_children[]= $row[0]; | |
} | |
return $rec_children; | |
} | |
///////////////////READ SPEFIC RECORD | |
if (isset($_GET["id"])) { | |
$rec_id=intval($_GET["id"]); | |
$row = getRow($db,"SELECT * FROM events where event_id=?",array($rec_id)); | |
//construct an array of children id records (fallback to JS) | |
$key_topic_set = getSet($db, "select event_key_topic_id from event_key_topic_ties where event_id=?",array($rec_id)); | |
$cmb_key_topic = get_array_by_set($key_topic_set); | |
//construct an array of children id records (fallback to JS) | |
$present_set = getSet($db, "select event_present_id from event_present_ties where event_id=?",array($rec_id)); | |
$cmb_present = get_array_by_set($present_set); | |
//construct an array of children id records (fallback to JS) | |
$benefits_set = getSet($db, "select event_benefit_id from event_benefits_ties where event_id=?",array($rec_id)); | |
$cmb_benefits = get_array_by_set($benefits_set); | |
//construct an array of children id records (fallback to JS) | |
$reqs_set = getSet($db, "select event_requirement_id from event_requirement_ties where event_id=?",array($rec_id)); | |
$cmb_reqs = get_array_by_set($reqs_set); | |
//construct an array of children id records (fallback to JS) | |
$tauds_set = getSet($db, "select event_target_audience_id from event_target_audience_ties where event_id=?",array($rec_id)); | |
$cmb_tauds = get_array_by_set($tauds_set); | |
//construct an array of children id records (fallback to JS) | |
$sponsors_set = getSet($db, "select event_sponsor_id from event_sponsor_ties where event_id=?",array($rec_id)); | |
$cmb_sponsors = get_array_by_set($sponsors_set); | |
//construct an array of children id records (fallback to JS) | |
$speakers_set = getSet($db, "select event_speaker_id from event_speaker_ties where event_id=?",array($rec_id)); | |
$cmb_speakers = get_array_by_set($speakers_set); | |
} | |
///////////////////READ SPEFIC RECORD | |
//fill multi-selects | |
$key_topics = getSet($db,"SELECT event_key_topic_id,event_key_topic_name FROM event_key_topics order by event_key_topic_name",null); | |
$presents = getSet($db,"SELECT event_present_id,event_present_name FROM event_presents order by event_present_name",null); | |
$benefits = getSet($db,"SELECT event_benefit_id, event_benefit_name FROM event_benefits order by event_benefit_name",null); | |
$reqs = getSet($db,"SELECT event_requirement_id, event_requirement_name FROM event_requirements order by event_requirement_name",null); | |
$target_audiences = getSet($db,"SELECT event_target_audience_id, event_target_audience_name FROM event_target_audiences order by event_target_audience_name",null); | |
$sponsors = getSet($db,"SELECT event_sponsor_id, event_sponsor_name FROM event_sponsors order by event_sponsor_name",null); | |
$speakers = getSet($db,"SELECT event_speaker_id, event_speaker_name FROM event_speakers order by event_speaker_name",null); | |
//fill multi-selects | |
?> | |
<script> | |
// jquery | |
$(function() { | |
///////////////////////////////////////////////////////////// FILL key_topics | |
var jArray_key_topics = <?php echo json_encode($key_topics); ?>; | |
var combo_key_topics_rows = ""; | |
for (var i = 0; i < jArray_key_topics.length; i++) | |
{ | |
combo_key_topics_rows += "<option value='" + jArray_key_topics[i]["event_key_topic_id"] + "'>" + jArray_key_topics[i]["event_key_topic_name"] + "</option>"; | |
} | |
$("#cmb_key_topic").html(combo_key_topics_rows); | |
$('#cmb_key_topic').multiselect({ | |
includeSelectAllOption: true | |
}); | |
///////////////////////////////////////////////////////////// FILL key_topics | |
///////////////////////////////////////////////////////////// FILL presents (also included) | |
var jArray_presents = <?php echo json_encode($presents); ?>; | |
var combo_presents_rows = ""; | |
for (var i = 0; i < jArray_presents.length; i++) | |
{ | |
combo_presents_rows += "<option value='" + jArray_presents[i]["event_present_id"] + "'>" + jArray_presents[i]["event_present_name"] + "</option>"; | |
} | |
$("#cmb_present").html(combo_presents_rows); | |
$('#cmb_present').multiselect({ | |
includeSelectAllOption: true | |
}); | |
///////////////////////////////////////////////////////////// FILL presents (also included) | |
///////////////////////////////////////////////////////////// FILL benefits | |
var jArray_benefits = <?php echo json_encode($benefits); ?>; | |
var combo_benefits_rows = ""; | |
for (var i = 0; i < jArray_benefits.length; i++) | |
{ | |
combo_benefits_rows += "<option value='" + jArray_benefits[i]["event_benefit_id"] + "'>" + jArray_benefits[i]["event_benefit_name"] + "</option>"; | |
} | |
$("#cmb_benefits").html(combo_benefits_rows); | |
$('#cmb_benefits').multiselect({ | |
includeSelectAllOption: true | |
}); | |
///////////////////////////////////////////////////////////// FILL benefits | |
///////////////////////////////////////////////////////////// FILL req | |
var jArray_reqs = <?php echo json_encode($reqs); ?>; | |
var combo_reqs_rows = ""; | |
for (var i = 0; i < jArray_reqs.length; i++) | |
{ | |
combo_reqs_rows += "<option value='" + jArray_reqs[i]["event_requirement_id"] + "'>" + jArray_reqs[i]["event_requirement_name"] + "</option>"; | |
} | |
$("#cmb_reqs").html(combo_reqs_rows); | |
$('#cmb_reqs').multiselect({ | |
includeSelectAllOption: true | |
}); | |
///////////////////////////////////////////////////////////// FILL req | |
///////////////////////////////////////////////////////////// FILL target_audiences | |
var jArray_target_audiences = <?php echo json_encode($target_audiences); ?>; | |
var combo_target_audiences_rows = ""; | |
for (var i = 0; i < jArray_target_audiences.length; i++) | |
{ | |
combo_target_audiences_rows += "<option value='" + jArray_target_audiences[i]["event_target_audience_id"] + "'>" + jArray_target_audiences[i]["event_target_audience_name"] + "</option>"; | |
} | |
$("#cmb_tauds").html(combo_target_audiences_rows); | |
$('#cmb_tauds').multiselect({ | |
includeSelectAllOption: true | |
}); | |
///////////////////////////////////////////////////////////// FILL target_audiences | |
///////////////////////////////////////////////////////////// FILL sponsors | |
var jArray_sponsors = <?php echo json_encode($sponsors); ?>; | |
var combo_sponsors_rows = ""; | |
for (var i = 0; i < jArray_sponsors.length; i++) | |
{ | |
combo_sponsors_rows += "<option value='" + jArray_sponsors[i]["event_sponsor_id"] + "'>" + jArray_sponsors[i]["event_sponsor_name"] + "</option>"; | |
} | |
$("#cmb_sponsors").html(combo_sponsors_rows); | |
$('#cmb_sponsors').multiselect({ | |
includeSelectAllOption: true | |
}); | |
///////////////////////////////////////////////////////////// FILL sponsors | |
///////////////////////////////////////////////////////////// FILL speakers | |
var jArray_speakers = <?php echo json_encode($speakers); ?>; | |
var combo_speakers_rows = ""; | |
for (var i = 0; i < jArray_speakers.length; i++) | |
{ | |
combo_speakers_rows += "<option value='" + jArray_speakers[i]["event_speaker_id"] + "'>" + jArray_speakers[i]["event_speaker_name"] + "</option>"; | |
} | |
$("#cmb_speakers").html(combo_speakers_rows); | |
$('#cmb_speakers').multiselect({ | |
includeSelectAllOption: true | |
}); | |
///////////////////////////////////////////////////////////// FILL speakers | |
///////////////////////////////////////////////////////////// EDIT RECORD | |
var jArray = <?php echo json_encode($row); ?>; | |
if (jArray) { | |
$('[name=eventsFORM_updateID]').val(jArray["event_id"]); | |
$('[name=event_type_id]').val(jArray["event_type_id"]); | |
var cmb_key_topic = <?php echo json_encode($cmb_key_topic); ?>; | |
$('#cmb_key_topic').multiselect('select', cmb_key_topic); | |
var cmb_present = <?php echo json_encode($cmb_present); ?>; | |
$('#cmb_present').multiselect('select', cmb_present); | |
var cmb_benefits = <?php echo json_encode($cmb_benefits); ?>; | |
$('#cmb_benefits').multiselect('select', cmb_benefits); | |
var cmb_reqs = <?php echo json_encode($cmb_reqs); ?>; | |
$('#cmb_reqs').multiselect('select', cmb_reqs); | |
var cmb_tauds = <?php echo json_encode($cmb_tauds); ?>; | |
$('#cmb_tauds').multiselect('select', cmb_tauds); | |
var cmb_sponsors = <?php echo json_encode($cmb_sponsors); ?>; | |
$('#cmb_sponsors').multiselect('select', cmb_sponsors); | |
var cmb_speakers = <?php echo json_encode($cmb_speakers); ?>; | |
$('#cmb_speakers').multiselect('select', cmb_speakers); | |
} | |
///////////////////////////////////////////////////////////// EDIT RECORD | |
//when form submitted (multi-selects belong there) | |
$("#form_EVENTS").submit(function(e) { | |
e.preventDefault(); | |
////////////////////////// validation | |
var form = $(this); | |
form.validate(); | |
if (!form.valid()) | |
return; | |
////////////////////////// validation | |
var postData = $(this).serializeArray(); | |
var formURL = $(this).attr("action"); | |
//if #multiple select# is exists merge to post! | |
if($("#cmb_key_topic").length > 0) { | |
postData.push({name: "cmb_key_topic", value : $("#cmb_key_topic").val()}); | |
postData.push({name: "cmb_present", value : $("#cmb_present").val()}); | |
postData.push({name: "cmb_benefits", value : $("#cmb_benefits").val()}); | |
postData.push({name: "cmb_reqs", value : $("#cmb_reqs").val()}); | |
postData.push({name: "cmb_tauds", value : $("#cmb_tauds").val()}); | |
postData.push({name: "cmb_sponsors", value : $("#cmb_sponsors").val()}); | |
postData.push({name: "cmb_speakers", value : $("#cmb_speakers").val()}); | |
} | |
loading.appendTo($('#formEVENTS')); | |
$.ajax( | |
{ | |
url : formURL, | |
type: "POST", | |
data : postData, | |
success:function(data, textStatus, jqXHR) | |
{ | |
loading.remove(); | |
if (data=="00000") | |
{ //refresh table @ main php | |
$('#events_tbl').bootstrapTable('refresh'); | |
//return to grid | |
$("#events").show(); | |
$("#events_details").hide(); | |
} | |
else | |
alert("ERROR"); | |
}, | |
error: function(jqXHR, textStatus, errorThrown) | |
{ | |
loading.remove(); | |
alert("ERROR - connection error"); | |
} | |
}); | |
}); | |
}) /jQ ends | |
</script> | |
<body> | |
<div class="col-xs-6 col-md-4"> | |
<div class='form-group'> | |
<div style="text-align: right;"> | |
<label> Key Course Topics :</label> | |
<select class="form-control" id="cmb_key_topic" multiple="multiple" name="cmb_key_topic[]"></select> | |
</div> | |
</div> | |
</div> | |
<div class="col-xs-6 col-md-4"> | |
<div class='form-group'> | |
<div style="text-align: right;"> | |
<label> Also Included :</label> | |
<select class="form-control" id="cmb_present" multiple="multiple" name="cmb_present[]"></select> | |
</div> | |
</div> | |
</div> | |
<div class="col-xs-6 col-md-4"> | |
<div class='form-group'> | |
<div style="text-align: right;"> | |
<label> Benefits :</label> | |
<select class="form-control" id="cmb_benefits" multiple="multiple" name="cmb_benefits[]"></select> | |
</div> | |
</div> | |
</div> | |
<div class="col-xs-6 col-md-4"> | |
<div class='form-group'> | |
<div style="text-align: right;"> | |
<label> Requirements :</label> | |
<select class="form-control" id="cmb_reqs" multiple="multiple" name="cmb_reqs[]"></select> | |
</div> | |
</div> | |
</div> | |
<div class="col-xs-6 col-md-4"> | |
<div class='form-group'> | |
<div style="text-align: right;"> | |
<label> Target Audiences :</label> | |
<select class="form-control" id="cmb_tauds" multiple="multiple" name="cmb_tauds[]"></select> | |
</div> | |
</div> | |
</div> | |
<div class="col-xs-6 col-md-4"> | |
<div class='form-group'> | |
<div style="text-align: right;"> | |
<label> Sponsors :</label> | |
<select class="form-control" id="cmb_sponsors" multiple="multiple" name="cmb_sponsors[]"></select> | |
</div> | |
</div> | |
</div> | |
<div class="col-xs-6 col-md-4"> | |
<div class='form-group'> | |
<div style="text-align: right;"> | |
<label> Speakers :</label> | |
<select class="form-control" id="cmb_speakers" multiple="multiple" name="cmb_speakers[]"></select> | |
</div> | |
</div> | |
</div> | |
</div> | |
</body> | |
////////////////////////[save.php] | |
<?php | |
. | |
//insert/update the main record here | |
//when insert mark $trans_type=0 | |
//when update mark $trans_type=1 | |
. | |
. | |
$res = $stmt->errorCode(); //get result | |
if ($res=="00000") //if success | |
{ | |
if ($trans_type==0) | |
$event_id =$db->lastInsertId(); | |
else | |
{ | |
$event_id = $_POST['eventsFORM_updateID']; | |
//when update delete all to FK table! | |
executeSQL($db, "delete from post_categories where post_id=?", array($post_id)); | |
} | |
////////////////////// | |
//[event_key_topics] | |
////////////////////// | |
//when update delete all to FK table! | |
executeSQL($db, "delete from event_key_topic_ties where event_id=?", array($event_id)); | |
//get key_topics | |
$key_topics = $_POST['cmb_key_topic']; | |
if (!empty($key_topics)) { | |
$key_topics_arr = explode(',', $key_topics); | |
$sql = "INSERT INTO `event_key_topic_ties` (event_id, event_key_topic_id, event_key_topic_tie_order_id) VALUES (:event_id, :event_key_topic_id, :event_key_topic_tie_order_id)"; | |
if ($stmt = $db->prepare($sql)){ | |
foreach ($key_topics_arr as $key_topics_id) { | |
$stmt->bindValue(':event_id' , $event_id); | |
$stmt->bindValue(':event_key_topic_id' , $key_topics_id); | |
$stmt->bindValue(':event_key_topic_tie_order_id' , 0); | |
$stmt->execute(); | |
if($stmt->errorCode() != "00000"){ | |
echo $stmt->errorCode(); | |
exit; | |
} } } } | |
////////////////////// | |
//[Also Included] | |
////////////////////// | |
//when update delete all to FK table! | |
executeSQL($db, "delete from event_present_ties where event_id=?", array($event_id)); | |
//get key_topics | |
$presents = $_POST['cmb_present']; | |
if (!empty($presents)) { | |
$presents_arr = explode(',', $presents); | |
$sql = "INSERT INTO `event_present_ties` (event_id, event_present_id, event_present_tie_order_id) VALUES (:event_id, :event_present_id, :event_present_tie_order_id)"; | |
if ($stmt = $db->prepare($sql)){ | |
foreach ($presents_arr as $present_id) { | |
$stmt->bindValue(':event_id' , $event_id); | |
$stmt->bindValue(':event_present_id' , $present_id); | |
$stmt->bindValue(':event_present_tie_order_id' , 0); | |
$stmt->execute(); | |
if($stmt->errorCode() != "00000"){ | |
echo $stmt->errorCode(); | |
exit; | |
} } } } | |
////////////////////// | |
//[Benefits] | |
////////////////////// | |
//when update delete all to FK table! | |
executeSQL($db, "delete from event_benefits_ties where event_id=?", array($event_id)); | |
//get key_topics | |
$benefits = $_POST['cmb_benefits']; | |
if (!empty($benefits)) { | |
$benefits_arr = explode(',', $benefits); | |
$sql = "INSERT INTO `event_benefits_ties` (event_id, event_benefit_id, event_benefit_tie_order_id) VALUES (:event_id, :event_benefit_id, :event_benefit_tie_order_id)"; | |
if ($stmt = $db->prepare($sql)){ | |
foreach ($benefits_arr as $benefit_id) { | |
$stmt->bindValue(':event_id' , $event_id); | |
$stmt->bindValue(':event_benefit_id' , $benefit_id); | |
$stmt->bindValue(':event_benefit_tie_order_id' , 0); | |
$stmt->execute(); | |
if($stmt->errorCode() != "00000"){ | |
echo $stmt->errorCode(); | |
exit; | |
} } } } | |
////////////////////// | |
//[Reqs] | |
////////////////////// | |
//when update delete all to FK table! | |
executeSQL($db, "delete from event_requirement_ties where event_id=?", array($event_id)); | |
//get key_topics | |
$reqs = $_POST['cmb_reqs']; | |
if (!empty($reqs)) { | |
$reqs_arr = explode(',', $reqs); | |
$sql = "INSERT INTO `event_requirement_ties` (event_id, event_requirement_id, event_requirement_tie_order_id) VALUES (:event_id, :event_requirement_id, :event_requirement_tie_order_id)"; | |
if ($stmt = $db->prepare($sql)){ | |
foreach ($reqs_arr as $req_id) { | |
$stmt->bindValue(':event_id' , $event_id); | |
$stmt->bindValue(':event_requirement_id' , $req_id); | |
$stmt->bindValue(':event_requirement_tie_order_id' , 0); | |
$stmt->execute(); | |
if($stmt->errorCode() != "00000"){ | |
echo $stmt->errorCode(); | |
exit; | |
} } } } | |
////////////////////// | |
//[Tauds] | |
////////////////////// | |
//when update delete all to FK table! | |
executeSQL($db, "delete from event_target_audience_ties where event_id=?", array($event_id)); | |
//get key_topics | |
$tauds = $_POST['cmb_tauds']; | |
if (!empty($tauds)) { | |
$tauds_arr = explode(',', $tauds); | |
$sql = "INSERT INTO `event_target_audience_ties` (event_id, event_target_audience_id, event_target_audience_tie_order_id) VALUES (:event_id, :event_target_audience_id, :event_target_audience_tie_order_id)"; | |
if ($stmt = $db->prepare($sql)){ | |
foreach ($tauds_arr as $taud_id) { | |
$stmt->bindValue(':event_id' , $event_id); | |
$stmt->bindValue(':event_target_audience_id' , $taud_id); | |
$stmt->bindValue(':event_target_audience_tie_order_id' , 0); | |
$stmt->execute(); | |
if($stmt->errorCode() != "00000"){ | |
echo $stmt->errorCode(); | |
exit; | |
} } } } | |
////////////////////// | |
//[Sponsors] | |
////////////////////// | |
//when update delete all to FK table! | |
executeSQL($db, "delete from event_sponsor_ties where event_id=?", array($event_id)); | |
//get key_topics | |
$sponsors = $_POST['cmb_sponsors']; | |
if (!empty($sponsors)) { | |
$sponsors_arr = explode(',', $sponsors); | |
$sql = "INSERT INTO `event_sponsor_ties` (event_id, event_sponsor_id, event_sponsor_tie_order_id) VALUES (:event_id, :event_sponsor_id, :event_sponsor_tie_order_id)"; | |
if ($stmt = $db->prepare($sql)){ | |
foreach ($sponsors_arr as $sponsor_id) { | |
$stmt->bindValue(':event_id' , $event_id); | |
$stmt->bindValue(':event_sponsor_id' , $sponsor_id); | |
$stmt->bindValue(':event_sponsor_tie_order_id' , 0); | |
$stmt->execute(); | |
if($stmt->errorCode() != "00000"){ | |
echo $stmt->errorCode(); | |
exit; | |
} } } } | |
////////////////////// | |
//[Speakers] | |
////////////////////// | |
//when update delete all to FK table! | |
executeSQL($db, "delete from event_speaker_ties where event_id=?", array($event_id)); | |
//get key_topics | |
$speakers = $_POST['cmb_speakers']; | |
if (!empty($speakers)) { | |
$speakers_arr = explode(',', $speakers); | |
$sql = "INSERT INTO `event_speaker_ties` (event_id, event_speaker_id, event_speaker_tie_order_id) VALUES (:event_id, :event_speaker_id, :event_speaker_tie_order_id)"; | |
if ($stmt = $db->prepare($sql)){ | |
foreach ($speakers_arr as $speaker_id) { | |
$stmt->bindValue(':event_id' , $event_id); | |
$stmt->bindValue(':event_speaker_id' , $speaker_id); | |
$stmt->bindValue(':event_speaker_tie_order_id' , 0); | |
$stmt->execute(); | |
if($stmt->errorCode() != "00000"){ | |
echo $stmt->errorCode(); | |
exit; | |
} } } } | |
} | |
echo $res; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment