ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel

Simple Event calendar (Part Two)

Updated on April 6, 2011

Edit calendar entries

The reason for this follow up, is because I was asked how would you go about editing the entries for this calendar.

Well first here is the example:

Going off the original code; we just add a little bit of functionality by doing a few edits, first of is how do we get the record to pull up, with the saved info:

if(!isset($_GET['id']) && !isset($_GET['f'])){
echo '<h3>Events Listed</h3>';

In bold we added some conditions that will decide where we do this, the above will run a loop to bring out all the records from the db concerning that date, same as before but with a small addition, we are telling the server give me all the records, only if the id and the form is not shown.

The second part goes the exact opposite:

}elseif(isset($_GET['id']) && isset($_GET['f'])){

This last part will trigger this piece of code:

$sql="select calID,calName,calDesc, calDate from calTbl";
$sql.=" where calID = '" . $_GET['id'] . "'";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
//other message
$errMess = 'Edit Entry of: ' . $row['calName'];
//show form and edit ability
include 'calForm.php';

See in bold, we are calling one record instead of an array of info that we would loop through and display, this one will give us one record.

We are still calling the calForm.php, we need this to edit the record, there is no need to create a whole new form for this, we just make calForm.php SMARTER.

All we need now to do is edit calForm,php and make it create records and edit them, so in reality it is two forms in one, but we are only concerned with one half at a time.

You accomplish that like so:

<?php if(!isset($_GET['id'])){?>

All that reads is that if we don't show the id of the record, show me the form that we can create a record.

And you can guess what the other half of the statement reads:

<?php }else{?>

Give me the half that will allow me to edit the record.

Now this half is different in respects to the HTML , we have to add a hidden field to hold the id of the record we want to edit:

<input type="hidden" name="id" value="<?=$_GET['id'];?>" />

We are calling it in the URL so we can easily grab it and use it.

Also in the text fields we need to get the values and put them in so we can view what the record is holding:

<input type="text" name="calName" id="calName" value="<?php echo $row['calName'];?>" onKeyup="checkFilled();">

See in bold.

Now we have to post these and make the page smart enough to decide in which direction you want to go INSERT or UPDATE, no sweat.

Back on the main page cal-2.php, we created this snippet to handle that thinking for us:

if(isset($_GET['v'])){
if(isset($_POST['Submit'])){
switch($_GET['e']){
case 1:
$sql="insert into calTbl(calName,calDesc,calDate,calStamp) values('" . $_POST['calName'] ."','";
$sql.= $_POST['calDesc'] . "','" . $_POST['calDate'] . "',now())";
break;

case 2:
$sql="update calTbl set calName='" . $_POST['calName'] . "', calDesc='" . $_POST['calDesc'] . "'";
$sql.=" where calID = '" . $_POST['id'] . "'";
break;
}//end switch

mysql_query($sql);
//echo $sql;
//return;
}

The only difference between the earlier version of the cal and this one is this statement, the switch handles the request which is given to it, from the action on the calForm.php.

If you look at calForm.php at the action for the form, the end will contain either e=1 or e=2.

This will give the switch something to make a choice, 1 will INSERT, 2 will UPDATE.

Of course there are always more elegant ways to accomplish these things, but nothing beats practice on some things, in this writing you got the following.

  1. Extending condtional statements with the double ampersand operator
  2. switch
  3. UPDATE (MySQL)
  4. And how to reuse portions of forms etc, without creating additional files.

I hope that everyone can get something from this and make it better.

Alpho011


Comments

    0 of 8192 characters used
    Post Comment

    • profile image

      braum 

      6 years ago

      I tried to search for a working Calform source code...couldnt find one. Would be nice if you reposted it!

    • profile image

      Kiran 

      7 years ago

      waste scrip and worst script

    • profile image

      riceman 

      7 years ago

      I think it is a good calendar script. However I really need the source code - maybe a link to calForm.php.

      Your account has expired so I cannot download your solution these days ; )

    • profile image

      pravin 

      8 years ago

      can any1 sen me the source file download link?

    • profile image

      pneelam 

      8 years ago

      it is really a nice code

      great job

      thanks a lot

    • Alpho011 profile imageAUTHOR

      Alpho011 

      8 years ago from Marietta, Georgia

      @Meadsy , no worries if you hit a snag, post it, we will work thru it.

    • profile image

      Meadsy 

      8 years ago

      OK, so I just need select the first day of that week and set that as the from date then add 7 to it for the time frame. And do that for every week.

      I've managed to display all events for the month by using LIKE so I can bypass the $day variable. That is the easy bit (thanks to the code supplied).

      I'll let you know who I get on, but I wouldn't hold your breath, I'm quite green behind the ears with php.

    • Alpho011 profile imageAUTHOR

      Alpho011 

      8 years ago from Marietta, Georgia

      Yeah you could, this would be from a query that would grab a time frame, and you would call the query the same as you would a day:

      something like this:

      SELECT week BETWEEN 10112010 AND 09122012

    • profile image

      Meadsy 

      8 years ago

      Stunning, really really helpful. Is there anyway to display events by month or week?

    • Alpho011 profile imageAUTHOR

      Alpho011 

      8 years ago from Marietta, Georgia

      UR Welcome

    • profile image

      spoiledchild 

      8 years ago

      thx a lot!

    • Alpho011 profile imageAUTHOR

      Alpho011 

      8 years ago from Marietta, Georgia

      Thanks psychicdog.net

    • psychicdog.net profile image

      psychicdog.net 

      8 years ago

      I spent a lot of time on Part 1, Alpho011 finding your scripts very elegant and informative. Thanks.

    working

    This website uses cookies

    As a user in the EEA, your approval is needed on a few things. To provide a better website experience, hubpages.com uses cookies (and other similar technologies) and may collect, process, and share personal data. Please choose which areas of our service you consent to our doing so.

    For more information on managing or withdrawing consents and how we handle data, visit our Privacy Policy at: https://hubpages.com/privacy-policy#gdpr

    Show Details
    Necessary
    HubPages Device IDThis is used to identify particular browsers or devices when the access the service, and is used for security reasons.
    LoginThis is necessary to sign in to the HubPages Service.
    Google RecaptchaThis is used to prevent bots and spam. (Privacy Policy)
    AkismetThis is used to detect comment spam. (Privacy Policy)
    HubPages Google AnalyticsThis is used to provide data on traffic to our website, all personally identifyable data is anonymized. (Privacy Policy)
    HubPages Traffic PixelThis is used to collect data on traffic to articles and other pages on our site. Unless you are signed in to a HubPages account, all personally identifiable information is anonymized.
    Amazon Web ServicesThis is a cloud services platform that we used to host our service. (Privacy Policy)
    CloudflareThis is a cloud CDN service that we use to efficiently deliver files required for our service to operate such as javascript, cascading style sheets, images, and videos. (Privacy Policy)
    Google Hosted LibrariesJavascript software libraries such as jQuery are loaded at endpoints on the googleapis.com or gstatic.com domains, for performance and efficiency reasons. (Privacy Policy)
    Features
    Google Custom SearchThis is feature allows you to search the site. (Privacy Policy)
    Google MapsSome articles have Google Maps embedded in them. (Privacy Policy)
    Google ChartsThis is used to display charts and graphs on articles and the author center. (Privacy Policy)
    Google AdSense Host APIThis service allows you to sign up for or associate a Google AdSense account with HubPages, so that you can earn money from ads on your articles. No data is shared unless you engage with this feature. (Privacy Policy)
    Google YouTubeSome articles have YouTube videos embedded in them. (Privacy Policy)
    VimeoSome articles have Vimeo videos embedded in them. (Privacy Policy)
    PaypalThis is used for a registered author who enrolls in the HubPages Earnings program and requests to be paid via PayPal. No data is shared with Paypal unless you engage with this feature. (Privacy Policy)
    Facebook LoginYou can use this to streamline signing up for, or signing in to your Hubpages account. No data is shared with Facebook unless you engage with this feature. (Privacy Policy)
    MavenThis supports the Maven widget and search functionality. (Privacy Policy)
    Marketing
    Google AdSenseThis is an ad network. (Privacy Policy)
    Google DoubleClickGoogle provides ad serving technology and runs an ad network. (Privacy Policy)
    Index ExchangeThis is an ad network. (Privacy Policy)
    SovrnThis is an ad network. (Privacy Policy)
    Facebook AdsThis is an ad network. (Privacy Policy)
    Amazon Unified Ad MarketplaceThis is an ad network. (Privacy Policy)
    AppNexusThis is an ad network. (Privacy Policy)
    OpenxThis is an ad network. (Privacy Policy)
    Rubicon ProjectThis is an ad network. (Privacy Policy)
    TripleLiftThis is an ad network. (Privacy Policy)
    Say MediaWe partner with Say Media to deliver ad campaigns on our sites. (Privacy Policy)
    Remarketing PixelsWe may use remarketing pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to advertise the HubPages Service to people that have visited our sites.
    Conversion Tracking PixelsWe may use conversion tracking pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to identify when an advertisement has successfully resulted in the desired action, such as signing up for the HubPages Service or publishing an article on the HubPages Service.
    Statistics
    Author Google AnalyticsThis is used to provide traffic data and reports to the authors of articles on the HubPages Service. (Privacy Policy)
    ComscoreComScore is a media measurement and analytics company providing marketing data and analytics to enterprises, media and advertising agencies, and publishers. Non-consent will result in ComScore only processing obfuscated personal data. (Privacy Policy)
    Amazon Tracking PixelSome articles display amazon products as part of the Amazon Affiliate program, this pixel provides traffic statistics for those products (Privacy Policy)