Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自文本文件的简单php跳转列表_Php_Javascript_Html - Fatal编程技术网

来自文本文件的简单php跳转列表

来自文本文件的简单php跳转列表,php,javascript,html,Php,Javascript,Html,我正在尝试从文本文件中创建一个简单的下拉跳转列表。。。文本文件如下所示: websitename1 http:// websitename1.com websitename2 http:// websitename2.com websitename3 http:// websitename3.com <select id="myselect" onchange="changePage( this.value );"> <option value="" selecte

我正在尝试从文本文件中创建一个简单的下拉跳转列表。。。文本文件如下所示:

websitename1 http:// websitename1.com
websitename2 http:// websitename2.com
websitename3 http:// websitename3.com
<select id="myselect" onchange="changePage( this.value );">

    <option value="" selected>Select Website...</option>

    <?php if( ( $file = fopen( 'websites.csv', "r" ) ) !== FALSE ): ?>

        <?php while( ( $row = fgetcsv( $file, 0, ',' ) ) !== FALSE ): ?>

            <option value="<?php echo $row[1]; ?>"><?php echo $row[0]; ?></option>

        <?php endwhile; ?>

    <?php endif; ?>

</select>

<script type="text/javascript">

    function changePage( url )
    {
        if( url !== '' )
        {
            window.open( url, '_blank' );
        }
    }
</script>

我找不到一个脚本,该脚本将读取文本文件并仅显示第1列,然后在选中时“跳转”到相关的第2列URL。我发现了很多关于如何使用PHP填充下拉列表的示例,但没有一个示例在选择后进行“跳转”(点击操作)。

修改08-20-13-添加了空白选择选项和JS函数

为了避免不必要的正则表达式方法,您可能应该使用.csv格式而不是.txt格式。它代表逗号分隔的值,并且允许您在不进行任何复杂的字符串操作的情况下,将网站名称与空格一起放置。例如,您的csv可能如下所示:

websitename1 http:// websitename1.com
websitename2 http:// websitename2.com
websitename3 http:// websitename3.com
<select id="myselect" onchange="changePage( this.value );">

    <option value="" selected>Select Website...</option>

    <?php if( ( $file = fopen( 'websites.csv', "r" ) ) !== FALSE ): ?>

        <?php while( ( $row = fgetcsv( $file, 0, ',' ) ) !== FALSE ): ?>

            <option value="<?php echo $row[1]; ?>"><?php echo $row[0]; ?></option>

        <?php endwhile; ?>

    <?php endif; ?>

</select>

<script type="text/javascript">

    function changePage( url )
    {
        if( url !== '' )
        {
            window.open( url, '_blank' );
        }
    }
</script>
新闻,
网站名称1,http://websitename1.com
网站名称2,http://websitename2.com
网站名称3,http://websitename3.com
事件,
网站名称4,http://websitename4.com
网站名称5,http://websitename5.com
网站名称6,http://websitename6.com
一个简短的片段可以是这样的:

websitename1 http:// websitename1.com
websitename2 http:// websitename2.com
websitename3 http:// websitename3.com
<select id="myselect" onchange="changePage( this.value );">

    <option value="" selected>Select Website...</option>

    <?php if( ( $file = fopen( 'websites.csv', "r" ) ) !== FALSE ): ?>

        <?php while( ( $row = fgetcsv( $file, 0, ',' ) ) !== FALSE ): ?>

            <option value="<?php echo $row[1]; ?>"><?php echo $row[0]; ?></option>

        <?php endwhile; ?>

    <?php endif; ?>

</select>

<script type="text/javascript">

    function changePage( url )
    {
        if( url !== '' )
        {
            window.open( url, '_blank' );
        }
    }
</script>
这会将下拉选项的值传递到窗口位置,并将用户带到所选页面。


一句警告
如果出于某种原因需要在网站名称或url中添加逗号,则需要将其括在csv中。幸运的是,默认情况下,fgetcsv允许您选择使用双引号括起字段。例如:

"Website, Name 4",http://websitename4.com
打印Name变量时,将输出
Website,Name 4
,并且不会错误地认为
Name 4
是下一个字段


注意:

<option value="<?php echo $row[1]; ?>"><?php echo $row[0]; ?></option>
<option value="<?php echo $row[1]; ?>" class="<?php echo $row[2]; ?>"><?php echo $row[0]; ?></option>
  • 正如评论中提到的OP,文件扩展名不必是.csv,我在这里这样做是为了与适当的约定保持一致,但是它必须遵循相同的文本格式。我给了我的文件几个不同的扩展名(.wmv、.php、.jpg),它们看起来都是一样的。最好只调用该文件,正如下面指出的,.csv数据将使用Excel打开。在新工作簿上使用“从文本文件导入数据”方法,您将能够通过“导入向导”设置列数据类型,确保Excel不会自动更正您的列并使数据出错

  • 正如Fred提到的,在code
    窗口中。open(this.value,“'u blank')
    您可以将
    “u blank”
    更改为
    “u self”
    ,以在同一页面上加载新位置。
    Javascript open()参考:

课程及类似课程:

<option value="<?php echo $row[1]; ?>"><?php echo $row[0]; ?></option>
<option value="<?php echo $row[1]; ?>" class="<?php echo $row[2]; ?>"><?php echo $row[0]; ?></option>
如果您想为下拉列表提供一些类,您还可以在.csv中添加另一列作为类名,并稍微更改它的回显方式。您的csv可能如下所示:

websitename1 http:// websitename1.com
websitename2 http:// websitename2.com
websitename3 http:// websitename3.com
<select id="myselect" onchange="changePage( this.value );">

    <option value="" selected>Select Website...</option>

    <?php if( ( $file = fopen( 'websites.csv', "r" ) ) !== FALSE ): ?>

        <?php while( ( $row = fgetcsv( $file, 0, ',' ) ) !== FALSE ): ?>

            <option value="<?php echo $row[1]; ?>"><?php echo $row[0]; ?></option>

        <?php endwhile; ?>

    <?php endif; ?>

</select>

<script type="text/javascript">

    function changePage( url )
    {
        if( url !== '' )
        {
            window.open( url, '_blank' );
        }
    }
</script>
News,,跳转标题
网站名称1,http://websitename1.com,跳转
网站名称2,http://websitename2.com,跳转
网站名称3,http://websitename3.com,跳转
事件,跳转标题
网站名称4,http://websitename4.com,跳转
网站名称5,http://websitename5.com,跳转
网站名称6,http://websitename6.com,跳转
现在我们有3个字段,名称,Url,类

现在修改下面的行

发件人:

<option value="<?php echo $row[1]; ?>"><?php echo $row[0]; ?></option>
<option value="<?php echo $row[1]; ?>" class="<?php echo $row[2]; ?>"><?php echo $row[0]; ?></option>

修改08-20-13-添加空白选择选项和JS功能

为了避免不必要的正则表达式方法,您可能应该使用.csv格式而不是.txt格式。它代表逗号分隔的值,并且允许您在不进行任何复杂的字符串操作的情况下,将网站名称与空格一起放置。例如,您的csv可能如下所示:

websitename1 http:// websitename1.com
websitename2 http:// websitename2.com
websitename3 http:// websitename3.com
<select id="myselect" onchange="changePage( this.value );">

    <option value="" selected>Select Website...</option>

    <?php if( ( $file = fopen( 'websites.csv', "r" ) ) !== FALSE ): ?>

        <?php while( ( $row = fgetcsv( $file, 0, ',' ) ) !== FALSE ): ?>

            <option value="<?php echo $row[1]; ?>"><?php echo $row[0]; ?></option>

        <?php endwhile; ?>

    <?php endif; ?>

</select>

<script type="text/javascript">

    function changePage( url )
    {
        if( url !== '' )
        {
            window.open( url, '_blank' );
        }
    }
</script>
新闻,
网站名称1,http://websitename1.com
网站名称2,http://websitename2.com
网站名称3,http://websitename3.com
事件,
网站名称4,http://websitename4.com
网站名称5,http://websitename5.com
网站名称6,http://websitename6.com
一个简短的片段可以是这样的:

websitename1 http:// websitename1.com
websitename2 http:// websitename2.com
websitename3 http:// websitename3.com
<select id="myselect" onchange="changePage( this.value );">

    <option value="" selected>Select Website...</option>

    <?php if( ( $file = fopen( 'websites.csv', "r" ) ) !== FALSE ): ?>

        <?php while( ( $row = fgetcsv( $file, 0, ',' ) ) !== FALSE ): ?>

            <option value="<?php echo $row[1]; ?>"><?php echo $row[0]; ?></option>

        <?php endwhile; ?>

    <?php endif; ?>

</select>

<script type="text/javascript">

    function changePage( url )
    {
        if( url !== '' )
        {
            window.open( url, '_blank' );
        }
    }
</script>
这会将下拉选项的值传递到窗口位置,并将用户带到所选页面。


一句警告
如果出于某种原因需要在网站名称或url中添加逗号,则需要将其括在csv中。幸运的是,默认情况下,fgetcsv允许您选择使用双引号括起字段。例如:

"Website, Name 4",http://websitename4.com
打印Name变量时,将输出
Website,Name 4
,并且不会错误地认为
Name 4
是下一个字段


注意:

<option value="<?php echo $row[1]; ?>"><?php echo $row[0]; ?></option>
<option value="<?php echo $row[1]; ?>" class="<?php echo $row[2]; ?>"><?php echo $row[0]; ?></option>
  • 正如评论中提到的OP,文件扩展名不必是.csv,我在这里这样做是为了与适当的约定保持一致,但是它必须遵循相同的文本格式。我给了我的文件几个不同的扩展名(.wmv、.php、.jpg),它们看起来都是一样的。最好只调用该文件,正如下面指出的,.csv数据将使用Excel打开。在新工作簿上使用“从文本文件导入数据”方法,您将能够通过“导入向导”设置列数据类型,确保Excel不会自动更正您的列并使数据出错

  • 正如Fred提到的,在code
    窗口中。open(this.value,“'u blank')
    您可以将
    “u blank”
    更改为
    “u self”
    ,以在同一页面上加载新位置。
    Javascript open()参考:

课程及类似课程:

<option value="<?php echo $row[1]; ?>"><?php echo $row[0]; ?></option>
<option value="<?php echo $row[1]; ?>" class="<?php echo $row[2]; ?>"><?php echo $row[0]; ?></option>
如果您想为下拉列表提供一些类,您还可以在.csv中添加另一列作为类名,并稍微更改它的回显方式。您的csv可能如下所示:

websitename1 http:// websitename1.com
websitename2 http:// websitename2.com
websitename3 http:// websitename3.com
<select id="myselect" onchange="changePage( this.value );">

    <option value="" selected>Select Website...</option>

    <?php if( ( $file = fopen( 'websites.csv', "r" ) ) !== FALSE ): ?>

        <?php while( ( $row = fgetcsv( $file, 0, ',' ) ) !== FALSE ): ?>

            <option value="<?php echo $row[1]; ?>"><?php echo $row[0]; ?></option>

        <?php endwhile; ?>

    <?php endif; ?>

</select>

<script type="text/javascript">

    function changePage( url )
    {
        if( url !== '' )
        {
            window.open( url, '_blank' );
        }
    }
</script>
News,,跳转标题
网站名称1,http://websitename1.com,跳转
网站名称2,http://websitename2.com,跳转
网站名称3,http://websitename3.com,跳转
事件,跳转标题
网站名称4,http://websitename4.com,跳转
网站名称5,http://websitename5.com