【问题标题】:JavaScript function to open new window, irrespective of PHP file?无论PHP文件如何,JavaScript函数都可以打开新窗口?
【发布时间】:2015-04-26 11:53:40
【问题描述】:

我有一个小问题困扰着我。

我有一个按钮,当点击它时,会打开一个基于 JavaScript 函数的“新窗口”:

  **<input type="button" id="button1" value="PLEASE BEGIN"     
   onclick="OpenWindow();">**

还有,这里是 JS 函数:

<script type="text/javascript">
     function OpenWindow() {
     window.open ('/MyFolder/newfile.php', 'newwindow', config='height=670,  
     width=1400, toolbar=no, menubar=no, scrollbars=no,  resizable=no, 
     location=no, directories=no, status=no');
        }
 </script>

因此,当单击 BUTTON 时,它会调用函数,该函数会在新窗口中打开文件“newfile.php”,并使用这些参数(高度、宽度等)

这非常有效......只要每次单击该按钮时我都需要打开相同的文件。

我的问题是:文件不同。每次单击该按钮时,我都想打开一个“不同的”文件。

换句话说:我如何构造 JS 函数,使其以相同的方式工作,IRRESPECTIVE 需要打开哪个文件???

(我的程序设计为直接从数据库本身获取所需的文件。这就是为什么我当前的 JavaScript 函数没用。它每次都打开 同一个文件

我该如何解决这个问题?

谢谢

更新

也许,我在最初的帖子中没有正确阐明我的问题。

我的错。

这就是我想要做的:

(a) 我正在创建一个测验程序; (b) 问题存储在数据库中,名为 questions 的表中,该表只有 3 列:

ID(整数,自动递增); 问题(问题本身) question_php(包含保存问题的 PHP 文件的名称)

我使用数据库的原因是:当用户回答每个问题时(无论正确或错误),他都会进入下一个问题。

我设计了我的 PHP 脚本来存储最后回答的问题的 ID。

因此,下次用户登录时,他会从数据库中的 NEXT 问题开始测验。

这样,他就不会多次看到同一个问题。

我的程序运行良好,除了一件事:第一个问题:D

在数据库中,第一个问题的 ID=1(当然),question_php 为:“1.php”

所以,标记为“PLEASE BEGIN”的“按钮”............当点击时,用户被重定向到“/MyFolder/1.php”

例如,如果用户正确回答了问题 1 到 5,然后停止.......下次登录并单击 PLEASE BEGIN 时,他应该开始来自问题 6 (6.php)。

这可行............除了一个小细节:程序获取正确的ID(“6”)............但是...... .......向用户展示了问题 1 的内容!

马上,我意识到问题的原因是这句话:

<script type="text/javascript">
     function OpenWindow() {
        window.open ('/MyFolder/1.php', 'newwindow', config='height=670,  
  width=1400, toolbar=no, menubar=no, scrollbars=no,  resizable=no, 
 location=no, directories=no, status=no');
         }
 </script>

无论用户从哪里开始测验,JS函数都会打开文件“1.p​​hp”

而且,有趣的是:在“1.php”之后............测验继续进行:第 7 题、第 8 题等

所以,唯一的问题是开始;第一次点击。

【问题讨论】:

    标签: javascript php function


    【解决方案1】:

    为函数添加一个参数,并在window.open 调用中使用它(我在这里称它为page):

    function OpenWindow(page) {
        window.open (page, 'newwindow', config='height=670,  
        width=1400, toolbar=no, menubar=no, scrollbars=no,  resizable=no, 
        location=no, directories=no, status=no');
    }
    

    那么你在哪里使用这个函数:

    <input type="button" id="button1" value="PLEASE BEGIN"     
       onclick="OpenWindow('/MyFolder/newfile.php');">
    

    (注意引号。)


    旁注:您的window.open 调用中的config= 部分看起来很可疑,很可能成为The Horror of Implicit Globals 的牺牲品。您可以删除它,除非您确实需要一个始终设置为该字符串值的客户端 config 变量。

    附注 2:一些浏览器对选项字符串非常挑剔,不喜欢其中的空格或换行符。

    允许两个音符:

    function OpenWindow(page) {
        window.open(
            page,
            'newwindow',
            'height=670,width=1400,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,directories=no,status=no'
        );
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-14
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      相关资源
      最近更新 更多