Table Forms
Everyone is pretty much aware of the problems one encounters when trying to create a form that spans multiple columns in a table. It doesn't work. If you put the <form> tag in the first column, the first </td> it runs into inserts a </form> and completely ignores the form tag you placed elsewhere in the row. So, off I went in search of a solution.
Use DIV instead of TABLES
The big push I see a lot of designers go for is to not use tables at all. Use divs in their place, but the responsive divs I've used for table forms were cumbersome and didn't respond as I expected. The first div group I came across used this css contraption:
.table { display: table; }
.table>* { display: table-row; }
.table>*>* { display: table-cell; }
They provided this HTML to go with it.
<div class="table">
<form>
<div>snake<input type="hidden" name="cartitem" value="55"></div>
<div><input name="count" value=4/></div>
</form>
</div>
This code is super simple, too simple. Notice that the html has no row div. That caused me endless amounts of trouble and sent me off to research how > and * worked in CSS. Obviously, all the children of the class "table" cascade, each level in order, table, row, and cell.
It doesn't have to be a div. As it turns out, the form tag acts as a row. I noticed this note from the author:
I wanted to emphasize the fact that you should not put a div to display as the table-row around the divs that are displaying as a table-cell, and that the form itself should display as table-row
I needed the form to span columns but I also needed a div to insert rows dynamically. Both tags destroyed my layout, so I couldn't use the above CSS for my form and I found that specifying classes for each element of the table didn't help either. I created this one and eventually used all of if with one modification:
.grid { display: table; }
.gridr { display: table-row; }
.gridc { display: table-cell; }
But, inserting the form tag and any other div tag gave me very similar results as the .table CSS. When I used a table instead of a div, tbody would allow me to group the rows that would be filled in with dynamic content. I would pick a date on the calendar and if that date had data in it, it would fill in the table rows with that data. I read that all of the table elements had a display element, but finding what the names of those table elements were was very hard. The note only showed one element besides table, table-row. I guess they assumed that we could guess at what the other element names were (This is one of my great frustrations. There doesn't appear to be a cookbook to explain or even list the incredients of functions, libraries and/or css elements just to name a few. They give you a sample and you have to figure out the rest.)
I finally found the element I was looking for: table-row-group. I assume that css stylesheets use thead, tbody and tfoot all use table-row-group. A note here, I had to use a different name (and I know know that there is an element called grid, so that may not have been a good name to use) for this class because I was already using a table class and I needed this just for this one table on the page. So I simply added the follow to the grid elements above:
.gridrg { display : table-row-group; }
But I still can't use a div for the table-row. I put the class in the form tag: <form class="gridr">
using table-row-group allows me to group the rows together so that I can insert rows into the group with $("#groupname").load("getdata");
Written by Leonard Rogers on Thursday, August 24, 2023 | Comments (0)
In process.... Moving my databases to a new server
I was maintaining my pgAdmin with the updates as they've been coming through. One feature that I really loved, and then lost, was the ability to break the query panels into separate windows. I performed an update and discovered that pgAdmin was no longer compatible with the version of the databse I was running on the server. There are a lot of problems that pile up when you do an update to fix obsolete software and this was no exception.
I use the SSL mode to authenticate and connect to the database. That's changed quite a bit and was also no longer compatible. So, when I updated it for the new server, I had problems accessing the legacy data with the old certificates and accessing the data on the new server from the same machine using the newer certificates to name just one. This entiry is a test to see if the blog data transfered tot he new database and is functional.
Written by Leonard Rogers on Tuesday, May 16, 2023 | Comments (0)
Cookie Failure on Mobile Devices
After several days of trying to work around an issue with identifying mobile devices through storing cookies, I finally figured out what caused the problem.
I'm writing an app to be used on various devices that I decided to compartmentalize by company. Doing so required that when the application is opened, it be aware of the company the user was logging into. If it was in a pick list, then people would know which companies to try to hack or try to guess which companies or how many companies are using the app. So, this all needed to be transparent to the public. Of course, the companies using the app would have to know how to set it up. That's proprietary information. However, once sent, it would have to be present each time that device or browser on that device connected. Cookies should work for that and it was for computer browsers. I tested Brave and Chrome. I believe it would have responded the same way for Edge but I didn't test it there. But on mobile browsers, the very same browsers that worked on computers, wouldn't work. It kept insisting that I reinitialize the company info.
Neither browser allows access to see the cookies. In fact, in the Brave browser, it was very difficult to see them. Chrome was more forthcoming. In Brave, I had to use the developer inspection tool, then on the application tab, Cookies are displayed and are manageable on the left side. Every search I used to find out why the mobile browsers did not save cookies only revealed information on how to clear or delete cookies. None of them explained how to keep them.
Finally, in the Brave browser on the computer where I could see the cookies, I decided to see what showed in the expiration column. They all said "Session". I believed they expired after 30 days. I have no idea where I got that idea. But it turns out that session means that they expire when the browser session is closed. Computer browsers don't pay attention to that. Once I set an expiration date on the cookie, it remained in the mobile browser as well. The mobile browser apparently follows the expiration, computer browsers don't. I'm sure there's a setting that affects that and maybe this is just common knowledge, but I couldn't find anything on it in my research.
Written by Leonard Rogers on Friday, December 23, 2022 | Comments (0)
Canada's New Anti-Spam Legislation
Just got this in an email.
Dear Valued Client,Canada's new Anti-Spam legislation takes effect on July 1st. In order for you to continue receiving valuable information from 1stDataRecovery.com, such as news about our services, special offers and events, we need to receive your consent. Simply reply to this email and type "Continue" in your email. Please note that you can decide to opt out of the emails at any point in the future.Thank you,
Way to go Canada! But the proof is in the enforcement. Good luck.
Written by Leonard Rogers on Wednesday, June 25, 2014 | Comments (0)
Facebook Privacy Settings GRAPH APP Myth
I just saw this post on Facebook which if you follow it's recommendations actually steps your friends through removing themselves from seeing your posts and comments. I don't know if it's on snopes.com yet, but I'm sure it'll be there soon.
The statement goes like this (i added highlights to show the flags that should make you suspicious of the content).
HEADS UP!!! FACEBOOK HAS CHANGED THEIR PRIVACY SETTINGS ONCE MORE!!! DUE TO THE NEW “GRAPH APP” ANYONE ON FACEBOOK (INCLUDING OTHER COUNTRIES) CAN SEE YOUR PICTURES, LIKES, AND COMMENTS. The next 2 weeks I will be posting this, and please once you have done it please post DONE! Those of you who do not keep my information from going out to the public, I will delete you! I want to stay PRIVATELY connected with you. I post shots of my family that I don't want strangers to have access to!!! This happens when our friends click "like" or "comment"... automatically, their friends would see our posts too. Unfortunately, we cannot change this setting by ourselves because Facebook has configured it that way. PLEASE place your mouse over my name above (DO NOT CLICK), a window will appear, now move the mouse on “FRIENDS" (also without clicking), then down to "Settings", click here and a list will appear. REMOVE the CHECK on "LIFE EVENTS" and "COMMENTS & LIKES". By doing this, my activity among my friends and family will no longer become public. Now, copy and paste this on your wall. Once I see this posted on your page, I will do the same.
The person that posted this originally is not a tech savvy person. Privacy options are not their forte. And the step by step instructions were far too detailed to be anything they wrote. That's the first clue that something is wrong. My first fear was that someone had hacked their account and published themselves, but why do that when you can make it sound so self protecting that users will just naturally share it and post it to all their friends. Heck, some may even copy and past it into email and send it to everyone on their mailing list even if they don't know they have a Facebook account. Or, like me, they might even post it on the internet on the blog...
My first comment to the person who posted this was "delete me." The next day I was still there and there were no other comments after mine. I decided to investigate a little further.
First off, why would any "friend" post a general posting that says, if you don't do what I'm asking you to do, I will delete you.
The second issue is that if it is about privacy, then a statement like "we cannot change this setting by ourselves" would indicate that this is not privacy.
Lastly is the invitation to share it with your friends, "once I see this posted on your page" I love the ones in email that say, someone will die if you don't share this, or you don't love god if you don't share...
Of course, once these steps are followed, you'd never see any more comments and thus if anyone said don't do it, those that already did wouldn't see it.
Written by Leonard Rogers on Thursday, February 21, 2013 | Comments (0)
Close the browser using javascript from classic asp
Before I get into this subject, I use to Google my searches for anything asp with a -.net in order to keep out the asp.net groups, but that doesn't appear to work as well anymore. Now the keyword I use is classic asp.
One of my recent problems has been to close out a window that I opened after the user updated some data on. Some explanation... I have a data entry page that pulls up the next record automatically when the user presses the submit button. I supply the data in a window and the user populates fields on the next page, then presses submit and brings up the next record. Naturally, this doesn't allow for the user to go back to fix any mistakes he might have made. To allow the user to go back, I run a second window with a list of the names the user has completed. As each name is completed, the list updates. So if I just finished one that I needed to fix, I'd click the last name on the list and it would pop up an additional screen populated with the data I had just entered. The way this works in chrome, I have main window that I am doing my normal data entry, a separate window that contains a list and if I click on one name in the list, a new window opens up on a tab next to the main window.
My goal was to let the user update the new window and click update, store the corrections and return to the main window with the new window closing automatically.
The problem is that if I put the window.close() on the submit button, I'd never store the data to the database. I didn't want to get into a vbscript, calling a javascript that called a vbscript. My page is a standard classic asp page that loads a form when initially opening the page with the form calling itself to post the data. This is easy enough as checking the state of the form field (in this case the submit buttons state) allows me to load the fields from the database on the first pass and branch to a different function to save the fields to the database on the second pass. The second pass is the key to closing the window. In the logic that saved the data, I used this code that I got from here.
<%
if xyz = "ok" then
%>
<script type="text/javascript">
window.opener="something";
window.close();
</script>
<%
end if
%>
The if then end if logic was replaced by my own requirements, but the javascript portion was entered exactly as it is here. On the first pass, there is no javascript like this on the page. It gets written as the page gets called from the submit button. But it gets written before any HTML headers are ever written. I just write it out right in the middle of my script. This works exactly has I had planned and closes the new window, saving the data and returning focus back to the main window.
The new window is based on the main windows layout, so when the new window closes, it makes you blink a couple of times trying to figure out what just happened. I went back to open the new window to see if the corrected information got saved. I like this better because it allows a data entry person to keep going with minimal mouse or keyboard activity, but if the information was for the casual browser, I'd put a message on the page that said the data was saved successfully with a link to close the window.
Written by Leonard Rogers on Wednesday, July 20, 2011 | Comments (0)
Bing Webmaster tools
Just got a new email today from the webmaster team at Bing:
Dear Bing Webmaster User,
As of June 7th, the Bing Webmaster Tools site that you know has changed.
Bing has been investing in building its Webmaster Tools for a while now and we have recently launched a revised webmaster experience that offers expansion in tools, data coverage and content. The site redesign makes it easier for you to find content, tools and data to help meet your needs. Our new features include expanded functionality, and the data that coincides with these new features. With over 40 new self-help documents on hand, publishers now have access to a wide range of help and guidance content across various topics such as how to use our tools and search engine optimization.
As part of our investment, we’ve built new functionality to help publishers find relevant data and control their accounts. Here are some of the major features and improvements Bing Webmaster account users will see:
- Crawl delay configurable by the hour
- Control when and at what pace Bing crawls your website
- User and role management
- Control who can access your Bing Webmaster account and what functions they can use
- Index Explorer
- Improvements to reliability and how fast data appears in your reports
- URL Normalization
- Manage which URLs from your site Bing holds in its index
- Deep Links Management
- Manage which deep links are shown for your website, when your domain is selected
Beyond the updated and enhanced features, Bing Webmaster Tools has also launched detailed self-help guides and how-to documents. We’ve covered a wide range of topics, from how to accomplish tasks within Bing Webmaster tools, to what you should be focused on when performing search engine optimization. Here’s a quick peek at some of the new content topics in the 40+ new guides and how to documents launched:
- Using Bing Webmaster Tools
- Webmaster Tools Data explained
- How to perform Link Building
- Removing or blocking pages from our index
- Search Engine Optimization (SEO) guidance Managing URL parameters
- Implementing Rich Snippets (www.schema.org)
- Managing Canonicalization (duplicate content)
- Managing redirects
- 404 page management
- Rich Media and Search
Watch for new content to appear monthly as we invest further in explaining features and highlight areas of work webmasters are focused on.
Visit Bing Webmaster Tools to see the new features in your account, and to access the new content.
Written by Leonard Rogers on Thursday, June 23, 2011 | Comments (0)
Follow up on Web Master tools
I set up my site on 3 major search engine Web Master Tools sites: Google, Bing and Yahoo. I was surprised to see that Yahoo was submitting my sitemap information to Microsoft. Apparently, they are collaborating. I placed my information on those search engines back in 2009. Yahoo and Bing have not checked or re indexed the sitemap since I set it up originally. So much for submitting a sitemap.
Google has been checking the sitemap. They have a page that shows the errors in the site crawl and the date they crawled it. Sometimes, I wish there was a way to get errors off the crawl list when you've fixed them, but it eventually clears up.
Basically, I find the web master tools for both Bing and Yahoo are a waste of time. At least Google appears to be doing something with the tools, while their competitors just collect the initial data and then let it sit. They must be short of man power or resources. The web master tools are collecting dust at Yahoo and Bing, or should I say, Microsoft.
Written by Leonard Rogers on Monday, January 17, 2011 | Comments (0)
Blog modification
I didn't like the form for making a comment to display on the page unless the reader wanted to leave a comment. It made the page look way too busy and I'm of the opinion that not everyone is going to leave a comment. So, I decided to hide it and leave a link the user could click to get the comment form to display.
I'm know you can hide information on a page using CSS styles and then use javascript to change the style characteristic to show the hidden information. For example the CSS style to hide everything between <div></div>, the opening tag would have <div style="display:none">. This also hides the real estate used to display the information. My problem was the code to get it to show, so I did some research.
The first sight I found was here and I used the following snippet.
<html>
<head>
<title>Untitled</title>
<script type="text/javascript">
function toggle(el)
{
myEl = document.getElementById(el);
myEl.style.display = (myEl.style.display == 'none') ? 'block' : 'none';
}
</script>
</head>
<body>
<div id="show" style="display: block;"><a href="#" onclick="toggle('show');toggle('hide');toggle('a');">Show</a></div>
<div id="hide" style="display: none;"><a href="#" onclick="toggle('show');toggle('hide');toggle('a');">Hide</a></div>
<div id="a" style="display: none;">Hello, World</div>
</body>
</html>
This worked pretty good, but when I clicked to show the page, the page would refresh and position the display to the top. It would also clear off any data I entered. I found a comment on this page "The link contains “javascript:”, which indicates that this link doesn’t point to a page..." that got me to thinking. The href="#", while it doesn't go anywhere, could be causing the problem as it points to a page and not to a javascript so I modified the snippet above to:
<div id="show" style="display: block;"><a href="javascript:onclick=toggle('show');toggle('hide');toggle('a');">Show</a></div>
<div id="hide" style="display: none;"><a href="javascript:onclick=toggle('show');toggle('hide');toggle('a');">Hide</a></div>
With that modification, the page stopped refreshing. You can see the results on the page your viewing by clicking Leave a comment.
Written by Leonard Rogers on Friday, December 24, 2010 | Comments (0)
The Bing Experince
Well I feel foolish. I wrote this based on my frustrations from a couple of weeks ago. I decided after writing this that I'd go back and see how Bing was doing and they crawled my site yesterday. Perhaps their servers took a Christmas and New Year's break. Who knows. But on their forums, Site indexing is the subject with the most posts.
Even though my site wasn't being indexed and the control panel summary profile wasn't showing that I was being indexed, the tab that showed sites that pointed to me and sites that I was pointing to was being shown. Go figure.
After several weeks of trying to get Bing to crawl my web site, I've yet to be crawled. The other two search engines that I submitted my sitemap to crawled my site within 24 hours. Bing doesn't even show the reason it's not being crawled.
I investigated the forums on Bing's site and found that this is a common problem. There are tons of suggestions on how to overcome the limitation and get Bing to crawl your site. Apparently, Bing relies on "backlinks" (other sites that link back to your site). There are nifty ideas on how to get this done which is signing on to forums that Bing does crawl and putting a link back to your site from there. Supposedly, that will get your site crawled. But when I searched my own site using the site: keyword and looked for site:fws.net I came up with several that linked to me. Obviously, Bing has those sites indexed, but has not, to date, indexed mine.
Written by Leonard Rogers on Tuesday, December 21, 2010 | Comments (0)
Web master tools
Implemented Google Analytics, Google Webmaster Tools, Yahoo Webmaster Tools and Bing Webmaster tools (The experience with Bing was less than satisfactory).
Written by Leonard Rogers on Tuesday, December 21, 2010 | Comments (0)
surrealcms
Implemented surrealcms on this web site and applying it to other web sites I designed.
Written by Leonard Rogers on Tuesday, December 21, 2010 | Comments (0)