Saturday, 28 December 2024

How to use fckeditor

 <!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>CKEditor 5 - Quick start CDN</title>

<link rel="stylesheet" href="https://cdn.ckeditor.com/ckeditor5/44.1.0/ckeditor5.css">

<style>

.main-container {

width: 795px;

margin-left: auto;

margin-right: auto;

}

</style>

</head>

<body>

<div class="main-container">

<div id="editor">

<p>Hello from CKEditor 5!</p>

</div>

</div>

<script src="https://cdn.ckeditor.com/ckeditor5/44.1.0/ckeditor5.umd.js"></script>

<script>

const {

ClassicEditor,

Essentials,

Paragraph,

Bold,

Italic,

Font

} = CKEDITOR;

// Create a free account and get <YOUR_LICENSE_KEY>

// https://portal.ckeditor.com/checkout?plan=free

ClassicEditor

.create( document.querySelector( '#editor' ), {

licenseKey: '<YOUR_LICENSE_KEY>',

plugins: [ Essentials, Paragraph, Bold, Italic, Font ],

toolbar: [

'undo', 'redo', '|', 'bold', 'italic', '|',

'fontSize', 'fontFamily', 'fontColor', 'fontBackgroundColor'

]

} )

.then( editor => {

window.editor = editor;

} )

.catch( error => {

console.error( error );

} );

</script>

</body>

</html>

Friday, 29 November 2024

CRUD opreation in MVC





DEPTVM :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Web;
using System.Web.Mvc;

namespace WebApplication1.Models
{
    public class DEPTVM
    {
        public DEPTVM()
        {
            lCID = new List<SelectListItem>();
            lSID= new List<SelectListItem>();
            LHOBBY= new List<SelectListItem>();
            HOBBY=new List<string>();
        }
        public int EID { get; set; }
        [Required(ErrorMessage ="Name should not be blank.")]
        public string NAME { get; set; }
        [DataType(DataType.MultilineText)]
        [Required(ErrorMessage = "Address should not be blank.")]
        public string ADDRESS { get; set; }
        [DataType(DataType.Password)]
        [Required(ErrorMessage = "Password should not be blank.")]
        [StringLength(8,MinimumLength =6,ErrorMessage ="Password length between 6 to 8 charecters long.")]
        public string PASSWORD { get; set; }
       
        [DataType(DataType.Password)]
        [DisplayName("CONFIRM PASSWORD")]
        [Required(ErrorMessage = "Confirm password should not be blank.")]
        [System.Web.Mvc.Compare("PASSWORD",ErrorMessage ="Password and comfirm password must be same.")]
        public string CPASSWORD { get; set; }
        [Required(ErrorMessage = "Please select a gender.")]
        public string GENDER { get; set; }
        [Required(ErrorMessage = "Email should not be blank.")]
        [DataType(DataType.EmailAddress,ErrorMessage ="Invalid email id.")]
        public string EMAIL { get; set; }
        [Required(ErrorMessage = "Salary should not be blank.")]
        public decimal? SALSRY { get; set; }
        [Required(ErrorMessage = "Please select a DOB.")]
        public DateTime? DOB { get; set; }
        [DisplayName("COUNTRY")]
        [Required(ErrorMessage = "Please select a country.")]
        public int CID { get; set; }
        public List<SelectListItem> lCID { get; set; }
        [Required(ErrorMessage = "Please select a state.")]
        [DisplayName("STATE")]
        public int SID { get; set; }
        public List<SelectListItem> lSID { get; set; }
        [Required(ErrorMessage = "Please select a hobby.")]
        public List<string> HOBBY { get; set; }
        public List<SelectListItem> LHOBBY { get; set; }
        [DisplayName("PHOTO")]
        [Required(ErrorMessage = "Please select a photo.")]
        public HttpPostedFileBase FPATH { get; set; }
        public void fillddl(List<SelectListItem> cl,List<SelectListItem> sl, List<SelectListItem> hl)
        {
            lCID = cl;
            lSID = sl;
            LHOBBY= hl;
        }
    }
}

GEMP :

using System;

using System.Collections.Generic;

using System.ComponentModel.DataAnnotations;

using System.ComponentModel;

using System.Linq;

using System.Web;

using System.Web.Mvc;


namespace WebApplication1.Models

{

    public class GEMP

    {

        public int EID { get; set; }

        public string NAME { get; set; }

      

        public string ADDRESS { get; set; }

      

        public string PASSWORD { get; set; }

      

    

        public string GENDER { get; set; }

        public string EMAIL { get; set; }

        public decimal? SALSRY { get; set; }

        public DateTime? DOB { get; set; }

        public string COUNTRY { get; set; }

        public string STATE { get; set; }

        public string HOBBY { get; set; }

        public string PATHA { get; set; }

        public List<HOBBY> HOBBYs { get; set; }



    }

}

DeptController :


using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Mvc;

using WebApplication1.Models;


namespace WebApplication1.Controllers

{

    public class DeptController : Controller

    {

        [HttpGet]

        public ActionResult Index()

        {

            using(Database1Entities1 obj=new Database1Entities1())

            {

                List<GEMP> lx = (from x in obj.EMPs

                                 join y in obj.COUNTRies on x.CID equals y.SID

                                 join z in obj.STATEs on x.SID equals z.SID

                                 select new GEMP()

                                 {

                                     EID = x.EID,

                                     NAME = x.NAME,

                                     PASSWORD = x.PASSWORD,

                                     ADDRESS = x.ADDRESS,

                                     GENDER = x.GENDER,

                                     SALSRY = x.SALARY.Value,

                                     EMAIL = x.MAIL,

                                     DOB = x.DOB.Value,

                                     PATHA = x.PATH,

                                     COUNTRY = y.SNAME,

                                     STATE = z.SNAME,

                                    HOBBYs = obj.HOBBies.Where(o => obj.HOBBYMAPs.Where(m => m.EID == x.EID).Select(n => n.HID).ToList().Contains(o.HID)).ToList()

                                 }).ToList();


            return View(lx);

            }

           

        }

        [HttpGet]

        public ActionResult Edit(int id)

        {

            using (Database1Entities1 obj = new Database1Entities1())

            {

                EMP dEPTVM = obj.EMPs.Find(id);

                DEPTVM eMP = new DEPTVM();

                eMP.EID = dEPTVM.EID;

                eMP.NAME = dEPTVM.NAME;

                eMP.ADDRESS = dEPTVM.ADDRESS;

                eMP.GENDER = dEPTVM.GENDER;

                eMP.EMAIL = dEPTVM.MAIL;

                eMP.SALSRY = dEPTVM.SALARY;

                eMP.DOB = dEPTVM.DOB;

                eMP.PASSWORD = dEPTVM.PASSWORD;

                eMP.fillddl(obj.COUNTRies.Select(m => new SelectListItem { Value = m.SID.ToString(), Text = m.SNAME }).ToList(),obj.STATEs.Where(q=>q.CID== dEPTVM.CID).Select(r=>new SelectListItem {Value=r.SID.ToString(),Text=r.SNAME }).ToList(), obj.HOBBies.Select(n => new SelectListItem { Value = n.HID.ToString(), Text = n.HNAME }).ToList());

                eMP.CID = dEPTVM.CID.Value;

                eMP.SID = dEPTVM.SID.Value;

                eMP.HOBBY = obj.HOBBYMAPs.Where(m => m.EID == dEPTVM.EID).Select(n => n.HID.ToString()).ToList();

                return View(eMP);

            }

        }

        [HttpPost]

        public ActionResult Edit(DEPTVM dEPTVM)

        {

            using (Database1Entities1 obj = new Database1Entities1())

            {

                EMP eMP = obj.EMPs.Find(dEPTVM.EID);

                eMP.NAME = dEPTVM.NAME;

                eMP.ADDRESS = dEPTVM.ADDRESS;

                eMP.GENDER = dEPTVM.GENDER;

                eMP.MAIL = dEPTVM.EMAIL;

                eMP.SALARY = dEPTVM.SALSRY;

                eMP.DOB = dEPTVM.DOB;

                eMP.CID = dEPTVM.CID;

                eMP.SID = dEPTVM.SID;

                string s = string.Empty;

                if (dEPTVM.FPATH.ContentLength > 0)

                {

                    s = "/Image/" + dEPTVM.FPATH.FileName;

                    dEPTVM.FPATH.SaveAs(Server.MapPath(s));

                    eMP.PATH = s;

                }

                obj.SaveChanges();

                obj.HOBBYMAPs.RemoveRange(obj.HOBBYMAPs.Where(m=>m.EID== dEPTVM.EID));

                obj.SaveChanges();

                obj.HOBBYMAPs.AddRange(dEPTVM.HOBBY.Select(x => new HOBBYMAP { EID = eMP.EID, HID = Convert.ToInt32(x) }));

                obj.SaveChanges();

                return RedirectToAction("Index");

            }

        }

        [HttpGet]

        public ActionResult Create() 

        {

            using (Database1Entities1 obj = new Database1Entities1())

            {

                DEPTVM dEPTVM = new DEPTVM();

                dEPTVM.fillddl(obj.COUNTRies.Select(m => new SelectListItem { Value = m.SID.ToString(), Text = m.SNAME }).ToList(), new List<SelectListItem>(), obj.HOBBies.Select(n => new SelectListItem { Value = n.HID.ToString(), Text = n.HNAME }).ToList());

                return View(dEPTVM);

            }

        }

        [HttpPost]

        public ActionResult Create(DEPTVM dEPTVM) {

            using (Database1Entities1 obj = new Database1Entities1())

            {

                EMP eMP= new EMP();

                eMP.NAME=dEPTVM.NAME;

                eMP.ADDRESS = dEPTVM.ADDRESS;

                eMP.GENDER = dEPTVM.GENDER;

                eMP.MAIL = dEPTVM.EMAIL;

                eMP.SALARY = dEPTVM.SALSRY;

                eMP.DOB = dEPTVM.DOB;

                eMP.PASSWORD = dEPTVM.PASSWORD;

                eMP.CID = dEPTVM.CID;

                eMP.SID = dEPTVM.SID;

                string s=string.Empty;

                if (dEPTVM.FPATH.ContentLength > 0)

                {

                  

                    s = "/Image/"+dEPTVM.FPATH.FileName;

                    if (!System.IO.File.Exists(Server.MapPath("~"+s)))

                    {

                        dEPTVM.FPATH.SaveAs(Server.MapPath(s));

                    }

                    

                }

                eMP.PATH = s;

                obj.EMPs.Add(eMP);

                obj.SaveChanges();

                obj.HOBBYMAPs.AddRange(dEPTVM.HOBBY.Select(x => new HOBBYMAP { EID = eMP.EID, HID = Convert.ToInt32(x) }));

                obj.SaveChanges();

                return RedirectToAction("Index");

            }

        }

        [HttpGet]

        public ActionResult Delete(int id)

        {

            using (Database1Entities1 obj = new Database1Entities1())

            {

                EMP eMP = obj.EMPs.Find(id);

                obj.EMPs.Remove(eMP);

                obj.SaveChanges();

                obj.HOBBYMAPs.RemoveRange(obj.HOBBYMAPs.Where(m => m.EID == id));

                obj.SaveChanges();

                return RedirectToAction("Index");

            }

        }

        [HttpGet]

        public JsonResult filldl(int cid)

        {

            using (Database1Entities1 obj = new Database1Entities1())

            {

                return Json(obj.STATEs.Where(m=>m.CID==cid).ToList(),JsonRequestBehavior.AllowGet);

            }


            }

    }

}

Index View :


@model IEnumerable<WebApplication1.Models.GEMP>


@{

    ViewBag.Title = "Index";

}


<h2>Index</h2>


<p>

    @Html.ActionLink("Create New", "Create")

</p>

<table class="table table-bordered table-hover table-responsive table-dark">

    <tr class="table-danger">

        <th>

            @Html.DisplayNameFor(model => model.EID)

        </th>

        <th>

            @Html.DisplayNameFor(model => model.NAME)

        </th>

        <th>

            @Html.DisplayNameFor(model => model.ADDRESS)

        </th>

       

        <th>

            @Html.DisplayNameFor(model => model.GENDER)

        </th>

       

        <th>

            @Html.DisplayNameFor(model => model.SALSRY)

        </th>

        <th>

            @Html.DisplayNameFor(model => model.DOB)

        </th>

        <th>

            @Html.DisplayNameFor(model => model.COUNTRY)

        </th>

        <th>

            @Html.DisplayNameFor(model => model.STATE)

        </th>

        <th>

            @Html.DisplayNameFor(model => model.HOBBY)

        </th>

        <th>

            @Html.DisplayNameFor(model => model.PATHA)

        </th>

        <th>ACTIONS</th>

    </tr>


@foreach (var item in Model) {

    <tr>

        <td>

            @Html.DisplayFor(modelItem => item.EID)

        </td>

        <td>

            @Html.DisplayFor(modelItem => item.NAME)

        </td>

        <td>

            @Html.DisplayFor(modelItem => item.ADDRESS)

        </td>

       

        <td>

            @Html.DisplayFor(modelItem => item.GENDER)

        </td>

       

        <td>

            @Html.DisplayFor(modelItem => item.SALSRY)

        </td>

        <td>

            @{ 

                string t = string.Format("{0:dd-MMM-yy}", item.DOB);

            }

            @t

        </td>

        <td>

            @Html.DisplayFor(modelItem => item.COUNTRY)

        </td>

        <td>

            @Html.DisplayFor(modelItem => item.STATE)

        </td>

        <td>

            @{

                string s = string.Empty;

                s = string.Join(",", item.HOBBYs.Select(p => p.HNAME));



            }

            @s

        </td>

        <td>

            <img height="50" width="50" src="@item.PATHA" alt="avtar" />

        </td>

        <td>

            @Html.ActionLink("Edit", "Edit", new {  id=item.EID }) |

            @Html.ActionLink("Delete", "Delete", new {  id=item.EID })

        </td>

    </tr>

}

</table>


Create View :

@model WebApplication1.Models.DEPTVM


@{

    ViewBag.Title = "Create";

}


<h2>Create</h2>



@using (Html.BeginForm("Create","Dept",FormMethod.Post,new { @enctype = "multipart/form-data" }))

{

    @Html.AntiForgeryToken()


<div class="form-horizontal">

    <h4>DEPTVM</h4>

    <hr />

    @Html.ValidationSummary(true, "", new { @class = "text-danger" })


    <div class="form-group">

        @Html.LabelFor(model => model.NAME, htmlAttributes: new { @class = "control-label col-md-2" })

        <div class="col-md-10">

            @Html.EditorFor(model => model.NAME, new { htmlAttributes = new { @class = "form-control" } })

            @Html.ValidationMessageFor(model => model.NAME, "", new { @class = "text-danger" })

        </div>

    </div>


    <div class="form-group">

        @Html.LabelFor(model => model.ADDRESS, htmlAttributes: new { @class = "control-label col-md-2" })

        <div class="col-md-10">

            @Html.EditorFor(model => model.ADDRESS, new { htmlAttributes = new { @class = "form-control" } })

            @Html.ValidationMessageFor(model => model.ADDRESS, "", new { @class = "text-danger" })

        </div>

    </div>


    <div class="form-group">

        @Html.LabelFor(model => model.PASSWORD, htmlAttributes: new { @class = "control-label col-md-2" })

        <div class="col-md-10">

            @Html.EditorFor(model => model.PASSWORD, new { htmlAttributes = new { @class = "form-control" } })

            @Html.ValidationMessageFor(model => model.PASSWORD, "", new { @class = "text-danger" })

        </div>

    </div>


    <div class="form-group">

        @Html.LabelFor(model => model.CPASSWORD, htmlAttributes: new { @class = "control-label col-md-2" })

        <div class="col-md-10">

            @Html.EditorFor(model => model.CPASSWORD, new { htmlAttributes = new { @class = "form-control" } })

            @Html.ValidationMessageFor(model => model.CPASSWORD, "", new { @class = "text-danger" })

        </div>

    </div>


    <div class="form-group">

        @Html.LabelFor(model => model.GENDER, htmlAttributes: new { @class = "control-label col-md-2" })

        <div class="col-md-10">

            @Html.RadioButtonFor(model => model.GENDER, "Male", new { @class = "" })Male &nbsp;

            @Html.RadioButtonFor(model => model.GENDER, "Female", new { @class = "" })Female

            @Html.ValidationMessageFor(model => model.GENDER, "", new { @class = "text-danger" })

        </div>

    </div>


    <div class="form-group">

        @Html.LabelFor(model => model.EMAIL, htmlAttributes: new { @class = "control-label col-md-2" })

        <div class="col-md-10">

            @Html.EditorFor(model => model.EMAIL, new { htmlAttributes = new { @class = "form-control" } })

            @Html.ValidationMessageFor(model => model.EMAIL, "", new { @class = "text-danger" })

        </div>

    </div>


    <div class="form-group">

        @Html.LabelFor(model => model.SALSRY, htmlAttributes: new { @class = "control-label col-md-2" })

        <div class="col-md-10">

            @Html.EditorFor(model => model.SALSRY, new { htmlAttributes = new { @class = "form-control" } })

            @Html.ValidationMessageFor(model => model.SALSRY, "", new { @class = "text-danger" })

        </div>

    </div>


    <div class="form-group">

        @Html.LabelFor(model => model.DOB, htmlAttributes: new { @class = "control-label col-md-2" })

        <div class="col-md-10">

            @Html.EditorFor(model => model.DOB, new { htmlAttributes = new { @class = "form-control" } })

            @Html.ValidationMessageFor(model => model.DOB, "", new { @class = "text-danger" })

        </div>

    </div>


    <div class="form-group">

        @Html.LabelFor(model => model.CID, htmlAttributes: new { @class = "control-label col-md-2" })

        <div class="col-md-10">

            @Html.DropDownListFor(model => model.CID, Model.lCID, "Select", new { @class = "form-control" })

            @Html.ValidationMessageFor(model => model.CID, "", new { @class = "text-danger" })

        </div>

    </div>


    <div class="form-group">

        @Html.LabelFor(model => model.SID, htmlAttributes: new { @class = "control-label col-md-2" })

        <div class="col-md-10">

            @Html.DropDownListFor(model => model.SID, Model.lSID, "Select", new { @class = "form-control" })

            @Html.ValidationMessageFor(model => model.SID, "", new { @class = "text-danger" })

        </div>

    </div>

    <div class="form-group">

        @Html.LabelFor(model => model.HOBBY, htmlAttributes: new { @class = "control-label col-md-2" })

        <div class="col-md-10">

            @Html.ListBoxFor(model => model.HOBBY, Model.LHOBBY, new { @class = "form-control" } )

            @Html.ValidationMessageFor(model => model.HOBBY, "", new { @class = "text-danger" })

        </div>

    </div>

    <div class="form-group">

        @Html.LabelFor(model => model.FPATH, htmlAttributes: new { @class = "control-label col-md-2" })

        <div class="col-md-10">

            @Html.TextBoxFor(model => model.FPATH,  new { @class = "form-control",type="file" } )

            @Html.ValidationMessageFor(model => model.FPATH, "", new { @class = "text-danger" })

        </div>

    </div>

    <div class="form-group">

        <div class="col-md-offset-2 col-md-10">

            <input type="submit" value="Create" class="btn btn-default" />

        </div>

    </div>

</div>

}


<div>

    @Html.ActionLink("Back to List", "Index")

</div>


@section Scripts {

    @Scripts.Render("~/bundles/jqueryval")

<script>

    $(function () {

         $('#CID').change(function () {


     $.ajax({

         url:  "@Url.Action("filldl", "Dept")",

         method: 'GET',

         datatype: 'json',

         data: {

             "cid": parseInt($(this).val())

         },

         success: function (data) {

             $('#SID').empty().append("<option value='0'>Select</option>")

             for (var i = 0; i < data.length; i++) {

                 $('#SID').append("<option value=" + data[i].SID + ">" + data[i].SNAME + "</option>")

             }

         },

         error: function (jqXHR) {

             alert(jqXHR.responseText);

         }

     });

 });


    });

</script>

}

Edit View :

@model WebApplication1.Models.DEPTVM

@{
    ViewBag.Title = "Edit";
}

<h2>Edit</h2>


@using (Html.BeginForm("Edit", "Dept", FormMethod.Post, new { @enctype = "multipart/form-data" }))
{
    @Html.AntiForgeryToken()

    <div class="form-horizontal">
      
        <hr />
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })

        <div class="form-group">
            @Html.LabelFor(model => model.NAME, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.HiddenFor(m=>m.EID)
                @Html.EditorFor(model => model.NAME, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.NAME, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.ADDRESS, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.ADDRESS, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.ADDRESS, "", new { @class = "text-danger" })
            </div>
        </div>

      

        <div class="form-group">
            @Html.LabelFor(model => model.GENDER, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.RadioButtonFor(model => model.GENDER, "Male", new { @class = "" })Male &nbsp;
                @Html.RadioButtonFor(model => model.GENDER, "Female", new { @class = "" })Female
                @Html.ValidationMessageFor(model => model.GENDER, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.EMAIL, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.EMAIL, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.EMAIL, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.SALSRY, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.SALSRY, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.SALSRY, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.DOB, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.DOB, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.DOB, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.CID, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.DropDownListFor(model => model.CID, Model.lCID, "Select", new { @class = "form-control" })
                @Html.ValidationMessageFor(model => model.CID, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.SID, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.DropDownListFor(model => model.SID, Model.lSID, "Select", new { @class = "form-control" })
                @Html.ValidationMessageFor(model => model.SID, "", new { @class = "text-danger" })
            </div>
        </div>
        <div class="form-group">
            @Html.LabelFor(model => model.HOBBY, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.ListBoxFor(model => model.HOBBY, Model.LHOBBY, new { @class = "form-control" })
                @Html.ValidationMessageFor(model => model.HOBBY, "", new { @class = "text-danger" })
            </div>
        </div>
        <div class="form-group">
            @Html.LabelFor(model => model.FPATH, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.TextBoxFor(model => model.FPATH, new { @class = "form-control", type = "file" })
                @Html.ValidationMessageFor(model => model.FPATH, "", new { @class = "text-danger" })
            </div>
        </div>
        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Create" class="btn btn-default" />
            </div>
        </div>
    </div>
}

<div>
    @Html.ActionLink("Back to List", "Index")
</div>

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
    <script>
    $(function () {
         $('#CID').change(function () {

     $.ajax({
         url:  "@Url.Action("filldl", "Dept")",
         method: 'GET',
         datatype: 'json',
         data: {
             "cid": parseInt($(this).val())
         },
         success: function (data) {
             $('#SID').empty().append("<option value='0'>Select</option>")
             for (var i = 0; i < data.length; i++) {
                 $('#SID').append("<option value=" + data[i].SID + ">" + data[i].SNAME + "</option>")
             }
         },
         error: function (jqXHR) {
             alert(jqXHR.responseText);
         }
     });
 });

    });
    </script>
}




 

Wednesday, 31 July 2024

how to upload images in php & jquery

 



fileupload.php :


<?php
$filename = $_FILES['file']['name'];
$location = "Images/".$filename;
$uploadOk = 1;
$imageFileType = pathinfo($location,PATHINFO_EXTENSION);
$valid_extensions = array("jpg","jpeg","png");
if( !in_array(strtolower($imageFileType),$valid_extensions) ) {
   $uploadOk = 0;
}if($uploadOk == 0){
   echo 0;
}else{
   if(move_uploaded_file($_FILES['file']['tmp_name'],$location)){
      echo 1;
   }else{
      echo 0;
   }
}
?>

API

<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: *');
header('Access-Control-Allow-Headers: *');
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Max-Age: 3600");
include "conn.php";
$json = file_get_contents("php://input");
$obj= json_decode($json,true);
$mark= $obj["mark"];
if ($mark==1)
{
$result=mysqli_query($conn,"SELECT ID,RNUMBER,CATEGORY,r.DESCRIPTION,PRICE,rt.RID,rt.RTNAME,bt.BID,bt.BTNAME,r.STATUS FROM `room` r
JOIN roomtype rt ON r.RID=rt.RID
JOIN bedtype bt on r.BID=bt.BID
order by ID desc");
if (mysqli_num_rows($result) > 0) {
while($row[] = mysqli_fetch_assoc($result)) {
$data=json_encode($row);
}
echo $data;
}
else
{
echo json_encode("result not found.");
}
}
elseif($mark==2)
{
$iD=$obj["ID"];
$result=mysqli_query($conn,"Select * from room where ID='$iD'");
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$data=json_encode($row);
}
echo $data;
}
else
{
echo json_encode("result not found.");
}
}
elseif($mark==3)
{
$rNUMBER=$obj["RNUMBER"];
$rID=$obj["RID"];
$bID=$obj["BID"];
$cATEGORY=$obj["CATEGORY"];
$pRICE=$obj["PRICE"];
$dESCRIPTION=$obj["DESCRIPTION"];
$result=mysqli_query($conn,"INSERT INTO `room`(`RNUMBER`, `RID`, `BID`, `CATEGORY`, `PRICE`, `DESCRIPTION`) VALUES ('$rNUMBER','$rID','$bID','$cATEGORY','$pRICE','$dESCRIPTION')");
$rMID = mysqli_insert_id($conn);
$rI= (array) $obj["RI"];
for($i = 0; $i < count($rI); $i++) {
$pATH=$rI[$i]["PATH"];
$result1=mysqli_query($conn,"INSERT INTO `roomimage`(`RMID`, `PATH`) VALUES ('$rMID','$pATH')");
}
if($result1)
{
echo json_encode("Data Inserted successfully.");
}
else
{
echo json_encode("Something went wrong.");
}
}
elseif($mark==4)
{
$iD=$obj["ID"];
$rNUMBER=$obj["RNUMBER"];
$rID=$obj["RID"];
$bID=$obj["BID"];
$cATEGORY=$obj["CATEGORY"];
$pRICE=$obj["PRICE"];
$dESCRIPTION=$obj["DESCRIPTION"];
$result=mysqli_query($conn,"UPDATE `room` SET `RNUMBER`='$rNUMBER',`RID`='$rID',`BID`='$bID',`CATEGORY`='$cATEGORY',`PRICE`='$pRICE',`DESCRIPTION`='$dESCRIPTION' WHERE `ID`='$iD'");
$result1=mysqli_query($conn,"DELETE FROM `roomimage` WHERE RMID='$iD'");
$rI= (array) $obj["RI"];
for($i = 0; $i < count($rI); $i++) {
$pATH=$rI[$i]["PATH"];
$result2=mysqli_query($conn,"INSERT INTO `roomimage`(`RMID`, `PATH`) VALUES ('$iD','$pATH')");
}
if($result2)
{
echo json_encode("Data Updated successfully.");
}
else
{
echo json_encode("Something went wrong.");
}
}
elseif($mark==5)
{
$iD=$obj["ID"];
$result=mysqli_query($conn,"delete from `room` where ID='$iD'");
$result1=mysqli_query($conn,"DELETE FROM `roomimage` WHERE RMID='$iD'");
if($result1)
{
echo json_encode("Data deleted successfully.");
}
else
{
echo json_encode("Something went wrong.");
}
}
elseif ($mark==6)
{
$iD=$obj["ID"];
$result=mysqli_query($conn,"SELECT `ID`, `RMID`, `PATH` FROM `roomimage` WHERE RMID='$iD'");
if (mysqli_num_rows($result) > 0) {
while($row[] = mysqli_fetch_assoc($result)) {
$data=json_encode($row);
}
echo $data;
}
else
{
echo json_encode("result not found.");
}
}
elseif($mark==7)
{
$iD=$obj["ID"];
$rNUMBER=$obj["RNUMBER"];
$rID=$obj["RID"];
$bID=$obj["BID"];
$cATEGORY=$obj["CATEGORY"];
$pRICE=$obj["PRICE"];
$dESCRIPTION=$obj["DESCRIPTION"];
$result1=mysqli_query($conn,"UPDATE `room` SET `RNUMBER`='$rNUMBER',`RID`='$rID',`BID`='$bID',`CATEGORY`='$cATEGORY',`PRICE`='$pRICE',`DESCRIPTION`='$dESCRIPTION' WHERE `ID`='$iD'");
if($result1)
{
echo json_encode("Data Updated successfully.");
}
else
{
echo json_encode("Something went wrong.");
}
}
mysqli_close($conn);
?>

Room.php :

<?php include "Header.php" ?>
<style>
    td.details-control {
        background: url('Images/details_open.png') no-repeat center center;
        cursor: pointer;
    }

    tr.shown td.details-control {
        background: url('Images/details_close.png') no-repeat center center;
    }
</style>

<div class="container" style="padding-top:10px;height:500px">
<a  class="btn btn-primary" id="an"  >Add New</a>
<br><br>
<div class="modal fade" id="myModal" role="dialog" data-keyboard="false" data-backdrop="static" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
          <h4 class="modal-title">Room Entry</h4>
        </div>
        <div class="modal-body">
        <form id="newModalForm">
        <div class="row form-group">
                <div class="col-md-3 col-sm-3 col-lg-3 col-xl-3">Room Number</div>
                <div class="col-md-6 col-sm-6 col-lg-6 col-xl-6">
                <input type="text" id="cn" name="cn" class="form-control" required>
                </div>
        </div>
       
        <div class="row form-group">
                <div class="col-md-3 col-sm-3 col-lg-3 col-xl-3">Room Type</div>
                <div class="col-md-6 col-sm-6 col-lg-6 col-xl-6">
                <select id="rt" name="rt" class="form-control">
                </select>
                </div>
        </div>
        <div class="row form-group">
                <div class="col-md-3 col-sm-3 col-lg-3 col-xl-3">Bed Type</div>
                <div class="col-md-6 col-sm-6 col-lg-6 col-xl-6">
                <select id="bt" name="bt" class="form-control">
                </select>
                </div>
        </div>
        <div class="row form-group">
                <div class="col-md-3 col-sm-3 col-lg-3 col-xl-3">Category</div>
                <div class="col-md-6 col-sm-6 col-lg-6 col-xl-6">
                <select id="ct" name="ct" class="form-control">
                  <option>Ac</option>
                  <option selected>Non Ac</option>
                </select>
                </div>
        </div>
        <div class="row form-group">
                <div class="col-md-3 col-sm-3 col-lg-3 col-xl-3">Room Picture</div>
                <div class="col-md-6 col-sm-6 col-lg-6 col-xl-6">
               <input type="file" id="file" name="file1"  class="form-control" required multiple>
                </div>
        </div>
        <div class="row form-group">
                <div class="col-md-3 col-sm-3 col-lg-3 col-xl-3">Price</div>
                <div class="col-md-6 col-sm-6 col-lg-6 col-xl-6">
                <input type="text" id="mn" name="mn" class="form-control" required>
                </div>
        </div>
        <div class="row form-group">
                <div class="col-md-3 col-sm-3 col-lg-3 col-xl-3">Description</div>
                <div class="col-md-6 col-sm-6 col-lg-6 col-xl-6">
                <textarea id="add" name="add" rows="3" class="form-control" required></textarea>
                </div>
        </div>
        <div class="row form-group">
                <div class="col-md-3 col-sm-3 col-lg-3 col-xl-3"></div>
                <div class="col-md-6 col-sm-6 col-lg-6 col-xl-6">
                <div id="divError" class="alert alert-success collapse">


<div id="divErrorText"></div>
</div>
                </div>
                </div>
        </from>
        </div>
        <div class="modal-footer">
        <input style="width:80px" type="button" value="Submit" id="btnsave" name="btnsave" class="btn btn-primary">
        <input type="reset" value="Reset" class="btn btn-primary" style="width:80px">
        </div>
      </div>
     
    </div>
  </div>
<div style="border:1px solid #ffffff">
<div class="row col-md-12 col-sm-12 col-lg-12 col-xl-12">
<table class="table table-bordered table-condensed table-hover table-responsive table-striped" id="tb">
<thead>
<tr class="bg bg-primary">
        <th></th>
        <th>ID</th>
        <th>ROOM NUMBER</th>
        <th>ROOM TYPE</th>
        <th>BED TYPE</th>
        <th>CATEGORY</th>
        <th>PRICE</th>
        <th>DESCRIPTION</th>
        <th>STATUS</th>
        <th>ACTION</th>
    </tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
<script type="text/javascript">
    var IID;
    var uri;
    $(function(){
        uri="http://localhost:8080/Hotelpuri/API/Room";
        uri1="http://localhost:8080/Hotelpuri/API/Roomtype";
        uri2="http://localhost:8080/Hotelpuri/API/Bedtype";
        $('#myModal').on('hidden.bs.modal', function () {
        $(this).find('form').trigger('reset');
        });
        $('#an').click(function(){
            cls();
            IID=0;
            var m= $('#myModal');
            m.modal('show');
        });
        function cls() {
            $('#cn').val('');
            $('#add').val('');
            $('#mn').val('');
            $('#em').val('');
        }
      $("#tb").on('click','.x',function(){
        var currentRow=$(this).closest("tr");
         IID=currentRow.find("td:eq(0)").text();
     $('#cn-error').html('');
        $.ajax({
                    url:  uri,
                    type: 'POST',
                    datatype: 'json',
                    data:JSON.stringify({
                      "mark":2,
                      PID:IID
                    }),
                    success: function (data) {
                        $('#cn').val(data.NAME);
                        $('#add').val(data.ADDRESS);
                        $('#mn').val(data.MOBILE);
                        $('#em').val(data.EMAIL);
                    },
                    error: function (t) {
                        alert(t.responseText);
                    }
                });
      var m= $('#myModal');
      m.modal('show');
    });
    $.validator.addMethod("ddl",function(value) {return value!=0;});
      $("#newModalForm").validate({
        rules: {
            cn: {
                required: true
            },
            add: {
                required: true
            },
            mn: {
                required: true
            },
            file: {
                required: true
            },
            rt: {
              ddl: true
            },
            bt: {
              ddl: true
            }
        },
        messages: {
            cn: {
                required: "Room number should not be blank."
            },
            add: {
                required: "Description should not be blank."
            },
            mn: {
                required: "Price should not be blank."
            },
            bt: {
              ddl: "Please select a bed type."
            },
            rt: {
              ddl: "Please select a room type."
            },
            file: {
              required: "Please select a picture."
            }
           
        }
    });  
    $.ajax({
                    url: uri1,
                    method: 'POST',
                    datatype: 'json',
                    data:JSON.stringify({
                        "mark":1
                    }),
                    success: function (data) {
                        $('#rt').empty().append("<option value='0'>Select</option>")
                     for(var i=0;i<data.length;i++)
                      {
                        $('#rt').append("<option value="+data[i].RID+">"+data[i].RTNAME+"</option>")
                      }  
                    },
                    error: function (jqXHR) {
                      alert(jqXHR.responseText);
                    }
                });
                $.ajax({
                    url: uri2,
                    method: 'POST',
                    datatype: 'json',
                    data:JSON.stringify({
                        "mark":1
                    }),
                    success: function (data) {
                        $('#bt').empty().append("<option value='0'>Select</option>")
                     for(var i=0;i<data.length;i++)
                      {
                        $('#bt').append("<option value="+data[i].BID+">"+data[i].BTNAME+"</option>")
                      }  
                    },
                    error: function (jqXHR) {
                      alert(jqXHR.responseText);
                    }
                });
                var obj=[];
      $('#btnsave').click(function(){
       
            if(IID==0)
            {
              if ($("#newModalForm").valid()) {
                obj=[];
              for(var i=0;i<$('#file')[0].files.length;i++){
            var fd = new FormData();
        var files = $('#file')[0].files[i];
        fd.append('file',files);  
        obj.push({"PATH":"Images/"+$('#file')[0].files[i].name });    
         $.ajax({
            url: 'Fileupload.php',
            type: 'post',
            data:fd,
            contentType: false,
            processData: false,
            success: function(response){
                if(response != 0){
                 
                }else{
                    alert('file not uploaded');
                }
            },
        });
        }
                $.ajax({
                    url: uri,
                    method: 'POST',
                    datatype: 'json',
                    data:JSON.stringify({
                        "mark":3,
                        "RNUMBER":$('#cn').val(),
                        "RID":$('#rt').val(),
                        "BID":$('#bt').val(),
                        "CATEGORY":$('#ct').val(),
                        "PRICE":$('#mn').val(),
                        "DESCRIPTION":$('#add').val(),
                        "RI":obj
                    }),
                    success: function (data) {
                      $('#divErrorText').text('Data Saved Successfully.');
                  $('#divError').show('fade');
            setTimeout(function () {
              $('#divError').hide('fade');
              location.reload();
            }, 2000);
                    },
                    error: function (jqXHR) {
                      alert(jqXHR.responseText);
                    }
                });
              }
            }
            else if(IID>0)
            {
              $("[name='file1']").removeAttr('required');
               if ($("#newModalForm").valid()) {
               if($('#file')[0].files.length==0)
               {
                $.ajax({
            url: uri,
            method: 'POST',
            datatype: 'json',
            data:JSON.stringify({
                        "mark":"7",
                        "ID": IID,
                        "RNUMBER":$('#cn').val(),
                        "RID":$('#rt').val(),
                        "BID":$('#bt').val(),
                        "CATEGORY":$('#ct').val(),
                        "PRICE":$('#mn').val(),
                        "DESCRIPTION":$('#add').val(),
                    }),
                 cache: false,
                 success: function (Data) {
                  $('#divErrorText').text('Data Updated Successfully.');
                  $('#divError').show('fade');
            setTimeout(function () {
              $('#divError').hide('fade');
              location.reload();
            }, 2000);

                 }

        });
               }
               else
               {
                obj=[];
              for(var i=0;i<$('#file')[0].files.length;i++){
            var fd = new FormData();
        var files = $('#file')[0].files[i];
        fd.append('file',files);  
        obj.push({"PATH":"Images/"+$('#file')[0].files[i].name });    
         $.ajax({
            url: 'Fileupload.php',
            type: 'post',
            data:fd,
            contentType: false,
            processData: false,
            success: function(response){
                if(response != 0){
                 
                }else{
                    alert('file not uploaded');
                }
            },
        });
               }
               $.ajax({
                    url: uri,
                    method: 'POST',
                    datatype: 'json',
                    data:JSON.stringify({
                        "mark":4,
                        "ID": IID,
                        "RNUMBER":$('#cn').val(),
                        "RID":$('#rt').val(),
                        "BID":$('#bt').val(),
                        "CATEGORY":$('#ct').val(),
                        "PRICE":$('#mn').val(),
                        "DESCRIPTION":$('#add').val(),
                        "RI":obj
                    }),
                    success: function (data) {
                      $('#divErrorText').text('Data Updated Successfully.');
                  $('#divError').show('fade');
            setTimeout(function () {
              $('#divError').hide('fade');
              location.reload();
            }, 2000);
                    },
                    error: function (jqXHR) {
                      alert(jqXHR.responseText);
                    }
                });

               }
           
            }
          }
        });
       
        $.ajax({
                    url: uri,
                    method: 'POST',
                    datatype: 'json',
                    data:JSON.stringify({
                        "mark":1
                    }),
                    success: function (data) {
                        if(data!="result not found.")
                      {
                        table=$('#tb').DataTable({
                    data:data,
                    columns: [
                        {
                            "className": 'details-control',
                            "orderable": false,
                            "data": null,
                            "defaultContent": ''
                        },
                        { "data": "ID" },
                        { "data": "RNUMBER" },
                        { "data": "RTNAME" },
                        { "data": "BTNAME" },
                        { "data": "CATEGORY" },
                        { "data": "PRICE" },
                        { "data": "DESCRIPTION" },
                        { "data": "STATUS" },
                        {  
                            "data": null,
                            "defaultContent": "<a  class='e' href='#' ><span class='glyphicon glyphicon-edit edit'></span></a> | <a  href='#' class='d' ><span class='glyphicon glyphicon-remove-circle del'></span></a>"
                        }
                    ],
                    "order": [[1, 'desc']]
                });
                      }

                       
                    },
                    error: function (jqXHR) {
                      alert(jqXHR.responseText);
                    }
                });
        $('#tb tbody').on('click', '.e', function () {
            var currentRow=$(this).closest("tr");
         var ID=currentRow.find("td:eq(1)").text();
         IID=ID;
         $.ajax({
                    url: uri,
                    method: 'POST',
                    datatype: 'json',
                    data:JSON.stringify({
                        "mark":2,
                        "ID" :ID
                    }),
                    success: function (data) {
                      $('#cn').val(data.RNUMBER);
                      $('#rt').val(data.RID);
                      $('#bt').val(data.BID);
                      $('#ct').val(data.CATEGORY);
                      $('#mn').val(data.PRICE);
                      $('#add').val(data.DESCRIPTION);
                      $('#file').text(data.RNUMBER);
                    },
                    error: function (jqXHR) {
                      alert(jqXHR.responseText);
                    }
                });
                var m= $('#myModal');
                m.modal('show');
        });
        $('#tb tbody').on('click', '.d', function () {
            var currentRow=$(this).closest("tr");
         var ID=currentRow.find("td:eq(1)").text();
         if(confirm("Do you want to delete it ?"))  
        {
          $.post(uri,JSON.stringify({
          "mark":5,
          "ID":ID
         }),function(data,status){
          location.reload();
         });
        }
        });
        $('#tb tbody').on('click', 'td.details-control', function () {

var tr = $(this).closest('tr');
var row = table.row(tr);

if (row.child.isShown()) {
   
    row.child.hide();
    tr.removeClass('shown');
}
else {
   
    row.child(format(row.data())).show();
    tr.addClass('shown');
}
});
              });
   
    var table = null;
    function format(d) {
        var tr = $(document.createElement("table"));
      var tr1=  tr.append("<tr></tr>")
        $.ajax({
            url: uri,
            method: 'POST',
            datatype: 'json',
            data:JSON.stringify({
                        "mark":6,
                        "ID": d.ID
                    }),
                 cache: false,
                 success: function (Data) {
                     $.each(Data, function (i, j) {
                         tr1.append("<td><img height='100'  width='100' src=" + j.PATH + "></td><td>&nbsp</td>");
                     });

                 }

        });
        return tr;
    }
</script>

<?php include 'Footer.php'; ?>