PHP选项标记和数组
只是在做一个小的大学项目,开发一个电子商务网站。我已经被提供了一些代码,我正在根据我的需要修改它 我目前在让一些数组在选项和选择标记中工作时遇到问题。不同之处在于,这些数组中的每一个都有一个与之关联的操作,例如,移动到另一个页面 问题似乎是此操作未在选项标记中使用。如图所示 以下是编辑前的原始代码:PHP选项标记和数组,php,html,arrays,select,option,Php,Html,Arrays,Select,Option,只是在做一个小的大学项目,开发一个电子商务网站。我已经被提供了一些代码,我正在根据我的需要修改它 我目前在让一些数组在选项和选择标记中工作时遇到问题。不同之处在于,这些数组中的每一个都有一个与之关联的操作,例如,移动到另一个页面 问题似乎是此操作未在选项标记中使用。如图所示 以下是编辑前的原始代码: <body> <div id="wrapper"> <div id="header"> <p><a href="index.php"&g
<body>
<div id="wrapper">
<div id="header">
<p><a href="index.php">Home</a> | Browse:
<?php
$q="SELECT c_id, c_name FROM sc_cat";
$result = mysqli_query($_SESSION['conn'],$q);
while ($row = mysqli_fetch_row($result)){
echo "<a href='category.php?id=$row[0]'>$row[1]</a> ";
}
unset($q); //unset query variable
mysqli_free_result($result); //free result
?>
</div>
<div id="content"><!-- note this is an opening tag -->
|浏览:
这是我编辑的代码(不起作用)
|浏览:
问题是选项标记没有要执行的“操作”。必须使用javascript将用户重定向到所选选项。将选择标记更改为
<select onchange="window.location = this.value;">
尝试将while循环切换到以下位置:
while ($row = $result->fetch_row()) {
echo "<option value='category.php?id=".$row[0]."'>".$row[1]."</a></option>";
//display categories
}
while($row=$result->fetch_row()){
回显“$行[1]”;
//显示类别
}
看看这是否有效
正如@Stormherz提到的,要在选择时自动加载,您需要将onclick方法放置到select标记上的选项中 在
之前有一个无关的
。即使这只是一个大学项目,也要小心sql注入。使用参数化程序。我刚刚运行了这个,得到了您所有产品的列表http://mkiddr.com/phptests/shopping/category.php?id=1 或1=1
。我可以很容易地运行这样的http://mkiddr.com/phptests/shopping/category.php?id=1;删除表ProductCategories--而且毁了你所有的努力。看看@Matt Kidd-Uhm,为什么西蒙的答案被选为正确的-你在使用我的解决方案,据我所知,凯文非常感激。这实际上是我的标准的一部分,我只是专注于从一开始就把所有的东西放在一起。然而,你确实节省了我寻找弱点的时间!有什么区别?您刚刚从功能性界面切换到OO界面,但它们是等效的。在某种程度上,优秀似乎已经做到了这一点。。。正如您在选择男装配件时所看到的,它会将您带到正确的类别,但是选择不会显示正确的标题。第一类似乎也没有反应。知道原因吗?第一个选项没有响应,因为它已经在值上,因此没有更改事件。您需要在前面添加另一个选项,如选择,但将其保留在循环之外。您的意思是选择不会显示正确的标题,您是指下拉列表中的选项吗?这是在你按下选择键之前还是在下一页按下选择键之后?非常感谢。我真傻,我没看到这个!所有分类:)在某种程度上,优秀似乎已经完成了这个技巧。。。当您选择男装配件时会看到mkiddr.com/phptests/shopping,它会将您带到正确的类别,但是选择不会显示正确的标题。第一类似乎也没有反应。知道为什么会这样吗?当然,只需更改echo“$row[1]”;到$selected=($row[0]=$\u GET['id'])?'selected=“selected”:“”;回显“$行[1]”;好极了太好了,非常感谢。编码不是我的事!虽然我开始掌握了一些窍门。。。
while ($row = $result->fetch_row()) {
echo "<option value='category.php?id=".$row[0]."'>".$row[1]."</a></option>";
//display categories
}