{"id":1580,"date":"2018-01-19T19:23:00","date_gmt":"2018-01-19T19:23:00","guid":{"rendered":"http:\/\/goofy-trucks.flywheelsites.com\/remote-scripting-with-javascript-iframes-and-php-page-6\/"},"modified":"2018-01-19T19:24:54","modified_gmt":"2018-01-19T19:24:54","slug":"remote-scripting-with-javascript-iframes-and-php-page-6","status":"publish","type":"post","link":"https:\/\/phpbuilder.com\/remote-scripting-with-javascript-iframes-and-php-page-6\/","title":{"rendered":"Remote Scripting with Javascript, IFrames and PHP Page 6"},"content":{"rendered":"<div class=\"phpbuilder-content\">\n<div class=\"phpbuilder-meta\">\n<div class=\"\">By David Vance<\/div>\n<div class=\"\">on May 10, 2004<\/div>\n<\/p><\/div>\n<div id=\"overflow-content\">\n<div class=\"articlePara\">\nHere, the search value is extracted from the textbox, and if it&#8217;s less than 2<br \/>\ncharacters in length, nothing is done, and we are returned. With 60,000<br \/>\nrecords I needed to limit the search results and the resulting drop down<br \/>\nlist, so I implemented this arbitrary length check. Next, I check that<br \/>\nthe character entered is alphanumeric, a space, dash, or period. Again,<br \/>\nan arbitrary limit that is specific to my case. Finally, if the search term<br \/>\nis &gt;= 2 characters and conatins valid characters, we dispatch the search term<br \/>\nto <code class=\"example\">callToServer()<\/code>.<\/div>\n<div class=\"articlePara\">\nBasically, the <code class=\"example\">callToServer()<\/code> function creates a hidden<br \/>\nIFrame object and &#8220;calls&#8221;<br \/>\nthe server by loading the URL and it&#8217;s query string with the IFrame&#8217;s location<br \/>\nattribute. There are also various browser compatibility and error checks interspersed.\n<\/div>\n<div class=\"articlePara\">\nNow, over on the server side is our PHP page of course, in my case server.php.<br \/>\nThe basic code looks like this:<\/div>\n<div class=\"articlePhpEx\">\n<font face=\"courier\"><code><span style=\"color: #000000\"><\/p>\n<p><span style=\"color: #0000BB\">&lt;?php<br \/>\n<br \/><\/span><span style=\"color: #007700\">if(!isset(<\/span><span style=\"color: #0000BB\">$_GET<\/span><span style=\"color: #007700\">[<\/span><span style=\"color: #DD0000\">'s'<\/span><span style=\"color: #007700\">]))<br \/>\n<br \/>{<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #0000BB\">$listAsString\u00a0<\/span><span style=\"color: #007700\">=\u00a0<\/span><span style=\"color: #DD0000\">'No\u00a0results'<\/span><span style=\"color: #007700\">;<br \/>\n<br \/>}<br \/>\n<br \/>else\u00a0<br \/>\n<br \/>{<br \/>\n<br \/><\/span><span style=\"color: #FF8000\">\/\/cleanVar()\u00a0just\u00a0does\u00a0some\u00a0slash\/trim\/strip_tags\u00a0type\u00a0things<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #0000BB\">$listAsString\u00a0<\/span><span style=\"color: #007700\">=\u00a0<\/span><span style=\"color: #0000BB\">searchFromJs<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">cleanVar<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$_GET<\/span><span style=\"color: #007700\">[<\/span><span style=\"color: #DD0000\">'s'<\/span><span style=\"color: #007700\">]));<br \/>\n<br \/>}<\/p>\n<p>function\u00a0<\/span><span style=\"color: #0000BB\">searchFromJs<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$searchTerm<\/span><span style=\"color: #007700\">)\u00a0<br \/>\n<br \/>{<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #0000BB\">$query\u00a0<\/span><span style=\"color: #007700\">=\u00a0<\/span><span style=\"color: #DD0000\">'select\u00a0id,\u00a0first_name,\u00a0last_name\u00a0<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0from\u00a0users\u00a0where\u00a0last_name\u00a0like\u00a0\"'<\/span><span style=\"color: #007700\">.<\/span><span style=\"color: #0000BB\">$searchTerm<\/span><span style=\"color: #007700\">.<\/span><span style=\"color: #DD0000\">'%\"\u00a0<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0order\u00a0by\u00a0last_name,\u00a0first_name\";\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0$result\u00a0=\u00a0mysql_query($query);<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0if($result\u00a0===\u00a0false)\u00a0return\u00a0'<\/span><span style=\"color: #0000BB\">Invalid\u00a0query<\/span><span style=\"color: #007700\">:\u00a0<\/span><span style=\"color: #DD0000\">'\u00a0.\u00a0mysql_error();\u00a0\u00a0<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0if(mysql_num_rows($result)\u00a0&lt;\u00a01)\u00a0return\u00a0'<\/span><span style=\"color: #0000BB\">No\u00a0results<\/span><span style=\"color: #DD0000\">';<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0while($r\u00a0=\u00a0mysql_fetch_assoc($result))<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0{<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$list\u00a0.=\u00a0$r['<\/span><span style=\"color: #0000BB\">id<\/span><span style=\"color: #DD0000\">'].'<\/span><span style=\"color: #007700\">~<\/span><span style=\"color: #DD0000\">'.$r['<\/span><span style=\"color: #0000BB\">first_name<\/span><span style=\"color: #DD0000\">'].'<\/span><span style=\"color: #007700\">~<\/span><span style=\"color: #DD0000\">'.$r['<\/span><span style=\"color: #0000BB\">last_name<\/span><span style=\"color: #DD0000\">'].'<\/span><span style=\"color: #007700\">|<\/span><span style=\"color: #DD0000\">';<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0}<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0$list\u00a0=\u00a0htmlspecialchars(preg_replace('<\/span><span style=\"color: #007700\">\/|$\/<\/span><span style=\"color: #DD0000\">','',$list),ENT_QUOTES);<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0return\u00a0$list;\u00a0\u00a0\u00a0\u00a0<br \/>\n<br \/>}<br \/>\n<br \/>?&gt;<\/p>\n<p>&lt;html&gt;<br \/>\n<br \/>&lt;script\u00a0type=\"text\/javascript\"&gt;<br \/>\n<br \/>window.parent.handleResponse(encodeURIComponent('<\/span><span style=\"color: #007700\">&lt;?=<\/span><span style=\"color: #0000BB\">$listAsString<\/span><span style=\"color: #007700\">;<\/span><span style=\"color: #0000BB\">?&gt;<\/span>'));<br \/>\n<br \/>&lt;\/script&gt;<br \/>\n<br \/>&lt;\/html&gt;<br \/>\n<br \/><\/span><br \/>\n<\/code><\/font><\/div>\n<\/div>\n<p><\/p>\n<div style=\"float: left; padding:15px; color:#17AAF3\">\n<div style=\"float:left; padding:2px;\"><a class=\"paginationPageLink\" href=\"vance20040507af4d.html?page=5\">\u00ab Previous Page<\/a><\/div>\n<div style=\"float:left; padding:2px 4px 2px 4px;\"><a class=\"pageNumber\" href=\"vance20040507.html\">1<\/a> <\/div>\n<div style=\"float:left; font-size:16px; color:#FF7A22; padding:2px 2px 2px 2px; \">| <\/div>\n<div style=\"float:left; padding:2px 4px 2px 4px;\"><a class=\"pageNumber\" href=\"vance200405074658.html?page=2\">2<\/a> <\/div>\n<div style=\"float:left; font-size:16px; color:#FF7A22; padding:2px 2px 2px 2px; \">| <\/div>\n<div style=\"float:left; padding:2px 4px 2px 4px;\"><a class=\"pageNumber\" href=\"vance200405079ba9.html?page=3\">3<\/a> <\/div>\n<div style=\"float:left; font-size:16px; color:#FF7A22; padding:2px 2px 2px 2px; \">| <\/div>\n<div style=\"float:left; padding:2px 4px 2px 4px;\"><a class=\"pageNumber\" href=\"vance20040507fdb0.html?page=4\">4<\/a> <\/div>\n<div style=\"float:left; font-size:16px; color:#FF7A22; padding:2px 2px 2px 2px; \">| <\/div>\n<div style=\"float:left; padding:2px 4px 2px 4px;\"><a class=\"pageNumber\" href=\"vance20040507af4d.html?page=5\">5<\/a> <\/div>\n<div style=\"float:left; font-size:16px; color:#FF7A22; padding:2px 2px 2px 2px; \">| <\/div>\n<div style=\"background-color:#B6E5FC; font-size:16px; margin-top:1px; padding:1px 4px 1px 4px; color:#000; font-style:bold; float:left;\">6<\/div>\n<div style=\"float:left; font-size:16px; color:#FF7A22; padding:2px 2px 2px 2px; \">| <\/div>\n<div style=\"float:left; padding:2px 4px 2px 4px;\"><a class=\"pageNumber\" href=\"vance20040507235c.html?page=7\">7<\/a> <\/div>\n<div style=\"float:left; font-size:16px; color:#FF7A22; padding:2px 2px 2px 2px; \">| <\/div>\n<div style=\"float:left; padding:2px 4px 2px 4px;\"><a class=\"pageNumber\" href=\"vance20040507fdfa.html?page=8\">8<\/a> <\/div>\n<div style=\"float:left; font-size:16px; color:#FF7A22; padding:2px 2px 2px 2px; \">| <\/div>\n<div style=\"float:left; padding:2px 4px 2px 4px;\"><a class=\"pageNumber\" href=\"vance200405070b08.html?page=9\">9<\/a> <\/div>\n<div style=\"float:left; padding:2px;\"><a class=\"paginationPageLink\" href=\"vance20040507235c.html?page=7\">Next Page \u00bb<\/a><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>David Vance explains there basics of remote scripting, using Javascript, IFrames and<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-1580","post","type-post","status-publish","format-standard","hentry","category-tutorials"],"_links":{"self":[{"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/posts\/1580","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/comments?post=1580"}],"version-history":[{"count":1,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/posts\/1580\/revisions"}],"predecessor-version":[{"id":3404,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/posts\/1580\/revisions\/3404"}],"wp:attachment":[{"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/media?parent=1580"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/categories?post=1580"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/tags?post=1580"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}