来自文本文件的简单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