Find us on facebook

Oct 16, 2014

Event triggers when typing complete on a text box

        var typingTimer;              
var doneTypingInterval = 2000;

$('input[name="optpeople_return_2"]').keyup(function(){
clearTimeout(typingTimer);
typingTimer = setTimeout(getPriceWithVehicles, doneTypingInterval);
});

$('input[name="optpeople_return_2"]').keydown(function(){
clearTimeout(typingTimer);
});

Oct 9, 2014

Javascript basics

JQuery - check a radio button
$("#diversion_n").prop("checked", true);

Assign PHP value to javascript variable
var no_of_vehicles=<?php echo $no_of_vehicles;?>;

loop through auto generated fields and call ajax function

viaString="";
for (via_counter = 0; via_counter < no_of_via_points; via_counter++) {
viaid=$("#via_point_id_"+via_counter).val();
viatable=$("#via_point_table_"+via_counter).val();
viatype=$("#via_point_type_"+via_counter).val();
viapoint=$("#via_point_"+via_counter).val();
if (viaid === undefined) {
no_of_via_points =0;
//$('#no_of_via_points').val();
} else {
constidstring = "&via_point_id_"+via_counter+"=";
consttablestring = "&via_point_table_"+via_counter+"=";
consttypestring = "&via_point_type_"+via_counter+"=";
conststring = "&via_point_"+via_counter+"=";
if(viaString==""){
viaString = constidstring+ viaid+consttablestring+viatable+consttypestring+viatype+conststring+viapoint;
}else{
viaString = viaString+constidstring+viaid+consttablestring+viatable+consttypestring+viatype+conststring+viapoint;
}
}


}

var dataString = 'from_point='+ from_point + '&from_point_id=' + from_point_id + '&to_point=' + to_point+ '&to_point_id=' + to_point_id
 + '&from_point_table=' + from_point_table + '&to_point_table=' + to_point_table
 + '&from_point_type=' + from_point_type + '&to_point_type=' + to_point_type+ '&site_id=' + site_id+ '&member_id=' + member_id+ '&is_student=' + is_student
 +'&no_of_via_points='+no_of_via_points+viaString+'&optpeople='+optpeople
;
$.ajax({
 type: "POST",
 url: "vehicle_quotes.php",
 data: dataString,
 beforeSend: function(){
for(vehicle_count=1;vehicle_count<=no_of_vehicles;vehicle_count++){
jQuery("#ajax_loader_quote_"+vehicle_count).show();
jQuery("#quote_price_"+vehicle_count).hide();
jQuery("#ajax_loader_quote_member_"+vehicle_count).show();
jQuery("#quote_price_member_"+vehicle_count).hide();
}
},
 complete: function(){
for(vehicle_count=1;vehicle_count<=no_of_vehicles;vehicle_count++){
jQuery("#ajax_loader_quote_"+vehicle_count).hide();
jQuery("#quote_price_"+vehicle_count).show();
jQuery("#ajax_loader_quote_member_"+vehicle_count).hide();
jQuery("#quote_price_member_"+vehicle_count).show();
}
},
 success: function(response)
 {
var priceObject = JSON.parse(response);
length=priceObject.price.length;
for(vehicle_count=0;vehicle_count<length;vehicle_count++){
vehicle_id = priceObject.price[vehicle_count].vehicle_id;
$('#price_'+vehicle_id).html("\u00A3"+priceObject.price[vehicle_count].journey_price_one_way);
$('#price_member_'+vehicle_id).html("Member Price: \u00A3"+priceObject.price[vehicle_count].journey_price_one_way_member);
}
 }
});

Oct 1, 2014

radio button click events

For specific radio button group
$("input[name='vehicle_way_two_radio']").click(function(){
vehicle_way_two=$('input:radio[name=vehicle_way_two_radio]:checked').val();
$("#vehicle_way_two").val(vehicle_way_two);
vehicle_way_one=$('input:radio[name=vehicle_way_one_radio]:checked').val();
$("#vehicle_way_one").val(vehicle_way_one);
getPrice();

});

For all radio buttons

$('input[type="radio"]').click(function(){

            if($(this).attr("value")=="diversion_y"){
                                $("#addwaypointdiv").show();
$("#via-container").show();
}

if($(this).attr("name")=="vehicle_way_two_radio"){

var vehicle_way_two = $(this).attr("value");
$("#vehicle_way_two").val(vehicle_way_two);

}        
});

Sep 24, 2014

calling to a different action in yii form

<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'rep-data-models-form',
'action' => Yii::app()->createUrl('reports/repColumns/create'),
'enableAjaxValidation'=>true,
'htmlOptions' => array(
                'enctype' => 'multipart/form-data',
            ),
));

?>

Sep 20, 2014

Many-Many in Grid view

grid view
'dataProvider' => $dataProvider
array(          
'name'=>'diningype',
'value'=> '$data->typeLabel'
),

Model
public function relations()
{
return array(
'diningtypes' => array (
self::MANY_MANY,
'DiningTypes',
'menu_diningtypes(menu_id, diningtypes_type_id)'
),
);
}

public function getTypeLabel()
{
$label = '';
foreach($this->diningtypes as $diningtype) {
$label .= "$diningtype->name, ";
}
return $label;
}

Controller
$dataProvider = $model ->with('diningtypes')->search();

Sep 10, 2014

Overcome undefined index in php

1) error_reporting(E_ALL ^ E_NOTICE);
2) $fid = isset($_GET['fid']) ? $_GET['fid'] : '';

Sep 6, 2014

sending json encoded data in web service iOS/Android

in chrome-extension://hgmloofddffdnphfgcellkdfbfbjeloo/RestClient.html
delivery_type=2&table=20&total_value=200&person_id=18&isEdited=false&os=android&data={"items":[{"itemId":61,"itemPrice":"234","isEdited":false,"orderdetails_id":0,"chair":0,"hasNote":"false","itemQty":1},{"itemId":62,"itemPrice":"234","isEdited":false,"orderdetails_id":0,"chair":0,"hasNote":"false","itemQty":1}]}

In PHP Catching
$items = $_POST['data'];
$items = CJSON::decode($items);
foreach ($items as $key=>$value) {
foreach ($value as $value1) {
$isEdited = $value1['isEdited'];
}
}

Aug 29, 2014

google map with way points

for($via_counter=0;$via_counter<$no_of_via_points;$via_counter++){
$via=mysql_real_escape_string($_GET["via_point_postcode_$via_counter"]);
$waypts[] = array(
'location' => $via,
'stopover' => true,
                     
);

}
$waypts[] = array(
'location' => $from_val_return,
'stopover' => true,
 
);
$waypts=json_encode($waypts);

<div id="map" style="width: 908px; height: 300px; float: left; margin-bottom:10px;"></div>
<div id="directions_panel" style="background-color:rgb(229, 227, 223);"></div>
<style>
<style>
#route {
    font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
    width: 100%;
    border-collapse: collapse;
}

#route td, #route th {
    font-size: 1em;
    border: 1px solid #98bf21;
    padding: 3px 7px 2px 7px;
}

#route th {
    font-size: 1.1em;
    text-align: left;
    padding-top: 5px;
    padding-bottom: 4px;
    background-color: #A7C942;
    color: #ffffff;
}

#route tr.alt td {
    color: #000000;
    background-color: #EAF2D3;
}
</style>
</style>
<script type="text/javascript">

var directionsService = new google.maps.DirectionsService();
var directionsDisplay = new google.maps.DirectionsRenderer();

var map = new google.maps.Map(document.getElementById('map'), {
   zoom:5,
   mapTypeId: google.maps.MapTypeId.ROADMAP
});

directionsDisplay.setMap(map);
directionsDisplay.setPanel(document.getElementById('panel'));
waypts = <?php echo $waypts;?>;

     var request = {
       origin: '<?php echo $from; ?>',
       destination: '<?php echo $to_val_return; ?>',
  waypoints: waypts,
       travelMode: google.maps.DirectionsTravelMode.DRIVING
     };


     directionsService.route(request, function(response, status) {
       if (status == google.maps.DirectionsStatus.OK) {
         directionsDisplay.setDirections(response);
var route = response.routes[0];
 var summaryPanel = document.getElementById('directions_panel');
 var HTML = '<table id="route">';
 HTML += '<tr><th>Route</th><th>From</th><th>To</th><th>Distance</th></tr>';
 // For each route, display summary information.
 for (var i = 0; i < route.legs.length; i++) {
var routeSegment = i + 1;
HTML += '<tr><td><b>' + routeSegment + '</b></td>';
HTML += '<td><b>' +route.legs[i].start_address + '</b></td>';
HTML += '<td><b>'+route.legs[i].end_address + '</b></td>';
HTML += '<td><b>'+route.legs[i].distance.text + '</b></td></tr>';
 }
 HTML +='</table>';
 summaryPanel.innerHTML = HTML;
       }
     });
   </script> 

Via Points

HTML
include_once $_SERVER['DOCUMENT_ROOT'].COMMON.'/js/js_homewaypoint.php';
<input type="button" value="Add Waypoint" id="addwaypoint"/>
<div id="via-container"></div>
<input type="hidden" id="no_of_via_points" name="no_of_via_points" value=""/>
js_homewaypoint.php
<link rel="stylesheet" href="scripts/jquery/themes/redmond/jquery.autocomplete.css">
<script src="scripts/jquery/autocompleteused/jquery-1.9.1.min.js"></script>
<script src="scripts/jquery/autocompleteused/jquery-ui.min.js"></script>
<script>
$(document).ready(function()
{

var via_counter = 0;

$('#addwaypoint').click(function () {
                var str = '';
str += '<div id="via_container_' + via_counter + '"><label>Via Point No: ' + (via_counter+1) + ' <a href="javascript:void(0);" class="remove"><img src="styles/images/cross.png"></a></label>';
str += '<input type="text" id="via_point_' + via_counter + '"  class="area-point-text-input" />';
str += '<input type="hidden" id="via_point_id_' + via_counter + '"  class="via_point_id" />';
str += '<input type="hidden" id="via_point_table_' + via_counter + '"  class="area-point-text-input" />';
str += '<input type="hidden" id="via_point_type_' + via_counter + '"  class="area-point-text-input" />';
str += '<input type="hidden" id="via_point_postcode_' + via_counter + '"  class="area-point-text-input" />';
str += '<div id="via_point_error_' + via_counter + '" class="error_bg" style="display: none;">Please Enter Valid Drop Off Point</div>';
str += '</div></div>';
$("#via-container").append(str);
$(function() {
$("#via_point_" + via_counter).autocomplete({
source: "get_search_values.php",
minLength: 1,
select: function( event, ui ) {
$("#via_point_id_"+(via_counter-1)).val(ui.item.id);
$("#via_point_table_" + (via_counter-1)).val(ui.item.table);
$("#via_point_type_" + (via_counter-1)).val(ui.item.area_type);
   $("#no_of_via_points").val(via_counter);
$('#via_point_postcode_'+(via_counter-1)).val(ui.item.postcode);
if(ui.item.id != ''){
$("#via_point_" + (via_counter-1)).css("background"," url('styles/images/tick.png') right center no-repeat #ffffff");
$("#via_point_error_" + (via_counter-1)).hide();
//$("#from-point-container").hide();
//$("#from-point-container-display").show();
}
  return ui.item.label;
 },
});

});
                via_counter++;
        });

$("body").on('click', ".remove", function () {
via_counter--;
$('#via_container_' + via_counter + '').remove();
$("#no_of_via_points").val(via_counter);

});

});
</script>

when click on button we can call to php file to get something done

var no_of_via_points = $("#no_of_via_points").val();
viaString="";
for (via_counter = 0; via_counter < no_of_via_points; via_counter++) {
viaid=$("#via_point_id_"+via_counter).val();
viatable=$("#via_point_table_"+via_counter).val();
constidstring = "&via_point_id_"+via_counter+"=";
consttablestring = "&via_point_table_"+via_counter+"=";
if(viaString==""){
viaString = constidstring+ viaid+consttablestring+viatable;
}else{
viaString = viaString+constidstring+viaid+consttablestring+viatable;
}
}
var dataString = 'no_of_via_points='+no_of_via_points+viaString;
;
$.ajax({
 type: "POST",
 url: "ajax_quote.php",
 data: dataString,
 beforeSend: function(){ jQuery("#ajax_loader_quote").show(); jQuery("#quote-price-container").show(); jQuery("#reserve-button").show(); $('#load_price_ajax').hide(); },
 complete: function(){ jQuery("#ajax_loader_quote").hide(); $('#load_price_ajax').show();},
 success: function(response)
 {
$('#load_price_ajax').html(unescape(response));
 }
});

ajax_quote.php
for($via_counter=0;$via_counter<=$no_of_via_points;$via_counter++){
unset($_SESSION["via_point_id_".$via_counter]);
unset($_SESSION["via_point_table_".$via_counter]);
$_SESSION["via_point_id_".$via_counter] = (int)mysql_real_escape_string($_POST['via_point_id_'.$via_counter]);
$_SESSION["via_point_table_".$via_counter] = mysql_real_escape_string($_POST['via_point_table_'.$via_counter]);

}

Vehicle Dropdown with images

html file
include_once $_SERVER['DOCUMENT_ROOT'].COMMON.'/js/js_homewaypoint.php';
<div id="vehicle"></div>

js_homewaypoint.php
<script src="scripts/jquery/autocompleteused/jquery-ui.min.js"></script>

<script src="scripts/ddslickvehicles/jquery.ddslick.js"></script>
<?php
$vehicleArray = $objaVehiclesTbl->getVehiclesAll();
while($vehicleRow = mysql_fetch_array($vehicleArray)):
    $imageName = $vehicleRow['image'];
    $imageSrc = "images/$imageName";
    $vehicleData[] = array(
'text' => ucwords(strtolower($vehicleRow['name'])),
'value' => (int)$vehicleRow['id'],
                        'description' => $vehicleRow['desc'],
                        'imageSrc' => $imageSrc
);
endwhile;


$vehicleDataJason = json_encode($vehicleData);

?>

<script language="javascript">
   
$(document).ready(function()
{
$('#vehicle').ddslick({
data: <?php echo $vehicleDataJason; ?>,
width: 289,
imagePosition: "left",
selectText: "Select Vehicle",
onSelected: function (data) {
  console.log(data);
$("#vehicle_way_one_index").val(data.selectedIndex);
$("#vehicle_way_one").val(data.selectedData.value);
$('#vehicle-return').ddslick('select', {index: data.selectedIndex });
if(data.selectedData.value != ''){
$('#vehicle_error').hide();
}
}
});
});
</script>

Auto complete Text Field jquery-1.9.1.min.js

html file
<?php
include_once $_SERVER['DOCUMENT_ROOT'].COMMON.'/js/js_homewaypoint.php';

?>
<input type="text" name="from_point" id="from_point" class="area-point-text-input"/>
<input type="hidden" id="from_point_id" name="from_point_id"/>
<input type="hidden" id="from_point_table" name="from_point_table"/>
<input type="hidden" id="from_point_type" name="from_point_type"/>
<div id="from_point_error" class="error_bg" style="display: none;">Please Enter Valid Pickup Point</div>

js_homewaypoint.php file
<link rel="stylesheet" href="scripts/jquery/themes/redmond/jquery.autocomplete.css">
<script src="scripts/jquery/autocompleteused/jquery-1.9.1.min.js"></script>
<script src="scripts/jquery/autocompleteused/jquery-ui.min.js"></script>

<script language="javascript">
 $(document).ready(function()
{
$(function() {

$("#from_point").autocomplete({
source: "get_search_values.php",
minLength: 1,
select: function( event, ui ) {
  $('#from_point_id').val(ui.item.id);
  $('#from_point_table').val(ui.item.table);
  $('#from_point_type').val(ui.item.area_type);
  $('#from_point_postcode').val(ui.item.postcode);
if(ui.item.id != ''){
$('#from_point').css("background"," url('styles/images/tick.png') right center no-repeat #ffffff");
$('#from_point_error').hide();
//$("#from-point-container").hide();
//$("#from-point-container-display").show();
}
  return ui.item.label;
 },
});

});
});
</script>

get_search_values.php

$qstring = "SELECT inner_postcode, outer_postcode_suffix, outer_postcode,name,id, area_type, full_postcode,is_address FROM a_area_points WHERE is_display = '1' AND (name LIKE '".$term."%') LIMIT 300";
     $result = mysql_query($qstring);


      while ($row = mysql_fetch_array($result,MYSQL_ASSOC))
      {
                $name = ucwords(strtolower($row['name']));
                $outer_postcode = $row['outer_postcode'];
                $area_type = $row['area_type'];
                if($area_type == 'AIRPORT'):
                    $outer_postcode = "";
                     $label = "$name";
                else:
                     $label = "$name, $outer_postcode";
                endif;
                $outerSuffix = $row['outer_postcode_suffix'];
$inner = $row['inner_postcode'];
$full_postcode="$outer_postcode$outerSuffix $inner";
             
                $id_array[] = $id = (int)$row['id'];
$data[] = array(
'label' => $label ,
'id' => (int)$row['id'],
                        'table' => "a_area_points",
                        'postcode' => $full_postcode,
                        'outer_postcode' => $row['outer_postcode'],
                        'area_type' => $area_type,
                        'is_address' => $row['is_address']
);
               
             
      }
 echo json_encode($data); 

Aug 26, 2014

JQuery/AJAX/PHP Mysql Autocomplete

<link rel="stylesheet" href="scripts/jquery/themes/redmond/jquery.autocomplete.css">
<script src="scripts/jquery/ui/jquery.autocomplete.js"></script>
<script>
$(document).ready(function()
{
 $("#txtfrom").autocomplete("get_search_values.php?",
{
selectFirst: true
});
});
</script>
<input type="text" name="txtfrom" id="txtfrom" class="area-point-text-input"/>
inc_get_search_values.php code

$term=$_GET['q'];
$term=trim(strip_tags(mysql_real_escape_string($term)));

$searchByNameStr = "SELECT name, outer_postcode, id, area_type, full_postcode, outer_postcode, is_address FROM a_area_points WHERE is_display = '1' AND (name LIKE '".$term."%') LIMIT 300";
$searchByNameResult = mysql_query($searchByNameStr);
$searchByNameResultCount = mysql_num_rows($searchByNameResult);
if($searchByNameResultCount>0){

while ($row = mysql_fetch_array($searchByNameResult,MYSQL_ASSOC))
{
$name = ucwords(strtolower($row['name']));
$outer_postcode = $row['outer_postcode'];
$area_type = $row['area_type'];
if($area_type == 'AIRPORT'){
$outer_postcode = "";
$label = "$name";
}else{
$label = "$name, $outer_postcode";
}
echo $label."\n";
}
}

Aug 21, 2014

Auto refresh page in yii with javascript

<?php
Yii::app()->clientScript->registerCoreScript('jquery');
Yii::app()->clientScript->registerScript('Refresh', "setTimeout('location.reload(true);',50000)", CClientScript::POS_READY);
?>

Many to Many relationship shown in the grid

In Controller
protected function gridCategoryDescription($data,$row)
    {
       return $this->_lastProductId != $data->id ? $data->discription : '';          
    }

protected function gridCategoryPrice($data,$row)
    {
        if($this->_lastProductId != $data->id)
        {
            $this->_lastProductId = $data->id;
            return $data->code;
        }
        else
             return '';
    }

In view
array(            
'name'=>'discription',
'value'=>array($this,'gridCategoryDescription')
),

array(            
'name'=>'code',
'value'=>array($this,'gridCategoryPrice')
),

Aug 18, 2014

Get Unique values from an array

public function actionGetLunchCategory() {

$this -> layout = false;
header('Content-type: application/json');

$id = $_POST['id'];
$LunchMenus = MenuDiningtypes::model() -> findAll(array("condition" => "diningtypes_type_id =  $id"));

$LunchCategories = array();
foreach ($LunchMenus as $LunchMenu) {
$menu_id=$LunchMenu->menu_id;
$Menu = Menu::model() -> find(array("condition" => "id = $menu_id "));

$mainmenu_id=$Menu -> main_menu;

$MainMenu = MainMenu::model() -> find(array("condition" => "id = $mainmenu_id "));

$path = "/" . $MainMenu -> id . "/" . $MainMenu -> image;
$return_array = array('id' => $MainMenu -> id, 'name' => $MainMenu -> name, 'image' => $path, );
array_push($LunchCategories, $return_array);
}
$LunchCategories = array_unique($LunchCategories,SORT_REGULAR);
echo CJSON::encode($LunchCategories);
Yii::app() -> end();

}

Aug 15, 2014

MySQL Triggers

BEGIN
declare msg varchar(255);
IF NEW.update_by = 0  OR NEW.update_by='' OR NEW.update_by=Null THEN
set msg = concat('MyTriggerError: Trying to insert a invalied value: ', cast(new.id as char));
signal sqlstate '45000' set message_text = msg;  
END IF;
END

====================
CREATE TRIGGER `allow_with_update_by` BEFORE INSERT ON  `table_order`
FOR EACH
ROW BEGIN
IF NEW.update_by <>0
THEN
SET NEW.update_by = 2;
END IF ;
END ;

Aug 13, 2014

Web service in .net

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Script.Serialization;
using System.Collections;

namespace SampleWS
{
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
    // [System.Web.Script.Services.ScriptService]
    public class WebService1 : System.Web.Services.WebService
    {
        DataClasses1DataContext DB = new DataClasses1DataContext();


        [WebMethod]
        public String Registration(String G_name,String T_name,String password)
        {

            Guide guide = new Guide();

            guide.G_name = G_name;
            guide.T_name = T_name;
            guide.Password = password;

            DB.Guides.InsertOnSubmit(guide);
            try
            {
                DB.SubmitChanges();
            }
            catch
            {
                return "fail";
            }
         

            return "success";
        }

        [WebMethod]
        public String update(String T_name,String vehicalinfo,String Charges,String More,String phone,String email,String contactExtra)
        {
            var r2 = DB.Guides
                   .Where(w => w.T_name == T_name)
                   .SingleOrDefault();


            if (r2 != null)
            {

                r2.VehicleInfo = vehicalinfo;
                r2.ContactInfo = contactExtra;
                r2.More = More;
                r2.Phone = phone;
                r2.email = email;

                DB.Guides.InsertOnSubmit(r2);

                try
                {
                    DB.SubmitChanges();
                }
                catch
                {
                    return "fail";
                }

            }
            else
            {
                return "fail";
            }

            return "success";
        }

        [WebMethod]
        public String updatelatlon(String lat, String lon)
        {
            Guide guide = new Guide();

            guide.Lat = lat;
            guide.@long = lon;

            DB.Guides.InsertOnSubmit(guide);
            try
            {
                DB.SubmitChanges();
            }
            catch
            {
                return "faile";
            }


            return "success";
        }


        [WebMethod]
        public void getAllLocation()
        {

            ArrayList parent = new ArrayList();
            var query = from guide in DB.Guides
                        select guide;

            foreach (var gud in query)
            {
                Dictionary<string, string> dictionary = new Dictionary<string, string>();
                dictionary.Add("lat", gud.Lat);
                dictionary.Add("log", gud.@long);

                parent.Add(dictionary);
            }
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            string json = serializer.Serialize(parent);
    Context.Response.Write(json);
            ///return json;
        }


        [WebMethod]
        public String gettravelinfo(String T_name)
        {
            return "success";
        }
    }
}


==============================
[WebMethod] [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)] public void MyMethod(... params ...) { try { var retval = new JavaScriptSerializer() .Serialize(new MyObject()); Context.Response.Write(retval); } catch (Exception ex) { Context.Response.Write(string.Format("[ERROR: {0}]", ex.Message)); } }

Aug 12, 2014

Convert full Date Time into DateTime format

$d1 = strtotime($MainMenu -> create_date);

Current Date/Time Timestamp

$timezone = "Asia/Colombo";
if (function_exists('date_default_timezone_set'))
date_default_timezone_set($timezone);
$i = date('Y-m-d H:i:s');
Table::model()->updateByPk($id, array(
'delete_date'       => $i,
'is_active'      => 0,

));

Date/ Time String to Date /Time Format

$date = $_POST['date'];
$newDateformat = new DateTime($date);
$newDateformat = $newDateformat->format('Y-m-d');
$time = $_POST['time'];
$newTimeformat = new DateTime($time);
$newTimeformat = $newTimeformat->format('H-i-s');

Draggable Droppable for image positioning under various groups

View
  <?php
$baseUrl = Yii::app()->baseUrl;
$cs = Yii::app()->getClientScript();
$cs->registerScriptFile($baseUrl.'/css/jquery-ui.js');
?>
 
  <?php
  Yii::app()->clientScript->registerCoreScript('jquery');
  $HotelAreas = HotelArea::model()->findAll();
foreach($HotelAreas as $HotelArea){
$Tables = Table::model()->findAll('is_active = 1 AND place='.$HotelArea->id);
foreach($Tables as $Table){
?>

  <script>
  $(function() {
left=0;
top=0;
    $("#<?php echo $Table->id?>").draggable();
$( "#droppable-<?php echo $HotelArea->id ?>").droppable({


      drop: function( event, ui ) {
       //alert(ui.draggable.prop('id'));
  event.stopPropagation();
var left = ui.position.left;
var dropPositionY = event.pageY - $(this).offset().top;
var dragItemOffsetY = event.offsetY;
var top =ui.position.top;
var droppableId = $(this).attr("id");
           $.ajax({
   
 url: "<?php echo Yii::app()->createAbsoluteUrl('Table/UpdatePosition');?>",
 type:"POST",
 data: "id="+ui.draggable.prop('id')+"&left=" + left+"&top=" + top+"&droppableId=" + droppableId,
 //dataType:"json",
 success: function(responce)

 {
 //alert(responce);

 }

});
           
      }
    });

  });
 
  </script>
  <?php
  }
  }
  ?>
<div class="span12">

<div class='fulid-row'>

<?php
$a_id = Yii::app() -> controller -> action -> id;
$c_id = Yii::app() -> controller -> id;
?>
<div id="content-box">
<div id="element-box">
<div id="system-message-container"></div>
<div class="">
<div class="adminform">

<?php $this->renderPartial('_left_menu'); ?>
<div class="span10">
<div class="headerContent">
<h3 style="padding: 5px;">Manage Tables</h3>
<!-- <h1 style="font-style: italic; margin: 25px 0px 0px -408px;">Manage Menu Items</h1> -->

</div>
<div class="space"></div>

</div>

<div class="span10" style="">
<div class="cpanel-right right-side">
<div style="margin-left: 20px;float: left;">
<?php
$HotelAreas = HotelArea::model()->findAll();
foreach($HotelAreas as $HotelArea){

$Tables = Table::model()->findAll('is_active = 1 AND place='.$HotelArea->id);


foreach($Tables as $Table){
$sql="SELECT image from table_type_images where table_type_id =".$Table->shape." AND chairs = ".$Table->chairs;
$TableTypeImage = TableTypeImages::model()->findBySql($sql);
if($Table->position==""|| $Table->position==Null){
$style="width:110px;margin-left: 20px;";
echo '<div id='.$Table->id.' style='.$style.'>';
}
elseif($Table->position!=""|| $Table->position!=Null){
$position=$Table->position;
$position=explode(",",$position);
$left=$position[0].'px';
$top=$position[1].'px';
$style="width:110px;left:$left;top:$top;";
echo '<div id='.$Table->id.' style='.$style.'>';
}
echo CHtml::image(Yii::app()->getBaseUrl().'/images/tables/'.$TableTypeImage->image, 'Tables[]');
echo '</div>';


}


}

?>
</div>
<div style="margin-left: 200px;">
<?php
$HotelAreas = HotelArea::model()->findAll();
foreach($HotelAreas as $HotelArea){

echo '<div id="droppable-'.$HotelArea->id.'" style="border: 3px solid #f90;border-radius: 1em;width:1000px;height:300px;">'.$HotelArea->name.
'</div>';

}
?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>


Controller
public function actionUpdatePosition(){
$left= $_POST['left'];
$top = $_POST['top'];
$id = $_POST['id'];
$droppableId = $_POST['droppableId'];
$droppableId=explode('-',$droppableId);
$Table = new Table;
$Table->updatePosition($left,$top,$id,$droppableId[1]);
//echo $top.",".$left;

}

Model
public function updatePosition($left=null,$top=null,$id=null,$droppableId=null)
{

$position =$left.",".$top;

$sql = "UPDATE `table` SET `position`='$position',`place`=$droppableId WHERE id=:id";

$parameters = array(":id"=>$id);

Yii::app()->db->createCommand($sql)->execute($parameters);

}

Aug 9, 2014

Draggable Droppable in yii

 <style>
 #droppable {
    width: 64em;
    height: 49em;
    padding: 0.5em;
    border: 3px solid #f90;
    border-radius: 1em;
    margin: 0 auto;
}</style>

  <?php
$baseUrl = Yii::app()->baseUrl;
$cs = Yii::app()->getClientScript();
$cs->registerScriptFile($baseUrl.'/css/jquery-ui.js');
?>
 
  <?php
  Yii::app()->clientScript->registerCoreScript('jquery');
$Tables = Table::model()->findAll('is_active = 1');
foreach($Tables as $Table){
?>

  <script>
  $(function() {
left=0;
top=0;
    $("#<?php echo $Table->id?>").draggable();
$( "#droppable" ).droppable({


      drop: function( event, ui ) {
       //alert(ui.draggable.prop('id'));
  event.stopPropagation();
var left = ui.position.left;
var dropPositionY = event.pageY - $(this).offset().top;
var dragItemOffsetY = event.offsetY;
var top =ui.position.top;
//var top = event.offsetY;//
           $.ajax({
   
 url: "<?php echo Yii::app()->createAbsoluteUrl('Table/UpdatePosition');?>",
 type:"POST",
 data: "id="+ui.draggable.prop('id')+"&left=" + left+"&top=" + top,
 //dataType:"json",
 success: function(responce)

 {
 //alert(responce);

 }

});
           
      }
    });

  });
 
  </script>
  <?php
  }
  ?>
<div class="span12">

<div class='fulid-row'>

<?php
$a_id = Yii::app() -> controller -> action -> id;
$c_id = Yii::app() -> controller -> id;
?>
<div id="content-box">
<div id="element-box">
<div id="system-message-container"></div>
<div class="">
<div class="adminform">

<?php $this->renderPartial('_left_menu'); ?>
<div class="span10">
<div class="headerContent">
<h3 style="padding: 5px;">Manage Tables</h3>
<!-- <h1 style="font-style: italic; margin: 25px 0px 0px -408px;">Manage Menu Items</h1> -->

</div>
<div class="space"></div>

</div>

<div class="span10" style="">
<div class="cpanel-right right-side">
<div style="margin-left: 20px;float: left;">
<?php
$Tables = Table::model()->findAll('is_active = 1');


foreach($Tables as $Table){
if($Table->position==""|| $Table->position==Null){
$style="width:110px;margin-left: 20px;";
echo '<div id='.$Table->id.' style='.$style.'>';
}
elseif($Table->position!=""|| $Table->position!=Null){
$position=$Table->position;
$position=explode(",",$position);
$left=$position[0].'px';
$top=$position[1].'px';
$style="width:110px;left:$left;top:$top;";
echo '<div id='.$Table->id.' style='.$style.'>';
}
echo CHtml::image(Yii::app()->getBaseUrl().'/images/tables/'.$Table->image, 'Tables[]');
echo '</div>';


}

?>
</div>
<div style="margin-left: 200px;">

<div id="droppable"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

Controller
public function actionUpdatePosition(){
$left= $_POST['left'];
$top = $_POST['top'];
$id = $_POST['id'];
$Table = new Table;
$Table->updatePosition($left,$top,$id);
//echo $top.",".$left;
}
Model
public function updatePosition($left=null,$top=null,$id=null)
{

$position =$left.",".$top;

$sql = "UPDATE `table` SET `position`='$position' WHERE id=:id";

$parameters = array(":id"=>$id);

Yii::app()->db->createCommand($sql)->execute($parameters);
}

Aug 8, 2014

exact same query: SELECT (..) WHERE (t.id=:ycp0).

$criteria = new CDbCriteria;
// Classic method
$criteria->addCondition('t.id = :id');
$criteria->params = array(':id' => Yii::app()->user->id);
// Often used in search functions. Note: if passed value is empty, the WHERE is not added!
$criteria->compare('t.id', Yii::app()->user->id);
// This is my current favorite
$criteria->addColumnCondition(array('t.id' => Yii::app()->user->id));
// A bit weird here, but you can also do this
$criteria->addInCondition('t.id', array(Yii::app()->user->id));