javascript - 如何创建带有“下一步”按钮和自动查找文件夹的 HTML 模板演示栏?

标签 javascript php directory

我有一些 HTML 模板,我想在 iFrame 中显示它们,其中一些模板有 2 到 11 种颜色。

folder name ex.
1
2
3
3-1
3-2
3-3
3-4
3-5
4
5
6-1
6-2
7
and more...

我有一个用于显示 NEXT 模板的按钮。

我想在 php 中使用 is_dir 来检查目录 1 或 3-2 是否可用,然后显示它。

<?php

$id = $_GET['id'];

$c=$id+1;
$c1=$c."-1";

$xm=$c;
$xm1=$c1;   

if (is_dir($xm)) {
    $c=$c;  
}

if (is_dir($xm1)) {$c=$c1;}

?>

<div id="header-bar">
    <form method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
        <input type="hidden" name="id" value="<?php echo $c ?>">
        <input type="submit" value="NEXT">
    </form>
</div>

<iframe src="http://barg.ir/demo/<?php echo $id; ?>"></iframe>

问题1:我可以显示文件夹3-1,但无法显示文件夹3-2和3-3......,该怎么办?

问题2:php数组可以编码吗?

问题3:可以用JavaScript编码吗? JavaScript 中的 is_dir 等于什么?

最佳答案

为什么不考虑使用glob()?将以下内容放入您要从中获取信息的文件夹中:

// we'll call it grabber.php
<?php
$files = glob('*', GLOB_ONLYDIR); sort($files, SORT_NATURAL);
?>

// now you can include grabber.php in your form file
<?php
session_start(); include_once 'PATH/grabber.php'; $end = count($files)-1;
<div id='header-bar'>
  <form method='post' action='<?php echo $_SERVER['PHP_SELF']; ?>'>
    <input type='submit' value='BACK' name='back' />
    <input type='submit' value='NEXT' name='next' />
  </form>
if(isset($_POST['back'])){
  $_SESSION['fileNum']--;
  if($_SESSION['fileNum'] < 0)$_SESSION['fileNum'] = $end;
}
elseif(isset($_POST['next'])){
  $_SESSION['fileNum']++;
  if($_SESSION['fileNum'] > $end)$_SESSION['fileNum'] = 0;
}
else{
  $_SESSION['fileNum'] = 0;
}
$f = $files[$_SESSION['fileNum']];
echo "  <iframe src='http://barg.ir/demo/$f'></iframe>".
'</div>';
?>

显然需要更改PATH

最好使用 JavaScript:

// You'll still need `grabber.php` in the same location as before, only now
// we'll actually make the PHP page into a String for JavaScript usage, like:
<?php
$dirs = glob('*', GLOB_ONLYDIR); sort($dirs, SORT_NATURAL);
$dirsJS = implode("', '", $dirs); // implode into a String for JavaScript Array
echo "//<![CDATA[
var doc = document, bod = doc.body;
bod.className = 'js'; // use .njs class in CSS for users without JavaScript
function E(e){
  return doc.getElementById(e);
}
function direct(backId, nextId, iframeId, iframeSrcBase){
  var dirs = ['$dirsJS'];
  var dl = dirs.length-1, n = 0, f = E(iframeId), s = iframeSrcBase;
  f.src = s+dirs[0];
  E(backId).onclick = function(){
    if(--n < 0)n = dl;
    f.src = s+dirs[n];
  }
  E(nextId).onclick = function(){
    if(++n > dl)n = 0;
    f.src = s+dirs[n];
  }
}
//]]>";
?>

/* 
   Now back to your main page. I like XHTML, but you can use whatever.
   The reason for JavaScript is to avoid scrolling issues and page flashing
   This is your main page again without as much PHP. There's no need to
   include the other file in PHP, or use a session. We use the `script`
   tag instead. Pay attention:
*/
<?php
echo "<!DOCTYPE html>
  <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
    <head>
      <meta http-equiv='content-type' content='text/html;charset=utf-8' />
      <style type='text/css'>
        @import 'yourCSS.css';
      </style>
    </head>
  <body class='njs'>
    <div id='header-bar'>
      <form method='post' action='{$_SERVER['PHP_SELF']}'>
        <input type='button' value='BACK' name='back' id='back' />
        <input type='button' value='NEXT' name='next' id='next' />
      </form>
      <iframe id='ifr' src=''><noscript>Your Browser Does Not Support JavaScript</noscript></iframe>
    </div>
    <script type='text/javascript' src='PATH/grabber.php'></script>
    <script type='text/javascript'>
      direct('back', 'next', 'ifr', 'http://barg.ir/demo/');
    </script>
  </body>
  </html>";
?>

再次,这次在 script 标记中,相应地更改 PATH

关于javascript - 如何创建带有“下一步”按钮和自动查找文件夹的 HTML 模板演示栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19990457/

相关文章:

javascript - 表单不是在 chrome 上提交而是在 firefox 上提交

ruby-on-rails - Heroku - 如何写入 "tmp"目录?

windows - 如何在 Windows 中修改 ~/.ssh 文件夹和文件?

javascript - 将滚动位置重置为新添加的元素

javascript - 如何从jsondata中获取key的值

javascript - 调用对象成员 - javascript

php - 安全表数据输入 PHP/PDO/MySQL

javascript - 无法在复选框上输入 addEventListener?

php - Silverstripe URL 如何工作?

java - 为什么不使用图片全名看不到图片?