我有两个单选按钮类别:color1和color2。颜色1可以是黑色或白色,颜色2可以是红色或蓝色。我只希望用户能够从一个类别或两个类别中选择,然后用PHP回应选择。
我的问题是它不会同时回应两个类别的选择。例如,如果我单击“白色”单选按钮,然后单击“蓝色”单选按钮,它将只显示“蓝色”,而不是“白色”和“蓝色”。
更新:
<?php
session_start();
if(isset($_GET['color1'])){
$_SESSION['color1'] = $_GET['color1'];
}
if(isset($_GET['color2'])){
$_SESSION['color2'] = $_GET['color2'];
}
echo $_SESSION['color1'];
echo $_SESSION['color2'];
?>
select first color:<br/>
<input type="radio" name="color1" value="black" onchange="window.location.href='recom.php?color1='+this.value"> black<br />
<input type="radio" name="color1" value="white" onchange="window.location.href='recom.php?color1='+this.value"> white<br />
select second color:<br/>
<input type="radio" name="color2" value="red" onchange="window.location.href='recom.php?color2='+this.value"> red<br />
<input type="radio" name="color2" value="blue" onchange="window.location.href='recom.php?color2='+this.value"> blue
答案 0 :(得分:4)
您需要在执行请求时发送两个变量(正如 yes123 的回答所示)。
或者您可以在PHP中使用$_SESSION
来保持所选内容的状态,而不是。
您可以在这里阅读会议 http://www.tizag.com/phpT/phpsessions.php
Session只是一个数组(我保持简单)。您可以在该数组中放置一些值,每次重新加载页面时,这些值都会保留 - 除非您关闭浏览器窗口。
在你的情况下
session_start(); // Remember to have this on top of your php file before any echo or print or any other html is printed out.
if(isset($_GET['color1']){
$_SESSION['color1'] = $_GET['color1'];
}
if(isset($_GET['color2']){
$_SESSION['color2'] = $_GET['color2'];
}
echo $_SESSION['color1'];
echo $_SESSION['color2'];
我还建议不要使用“红色”,“蓝色”等。
给每种颜色一个id - 红色= 1,蓝色= 5等。
然后你执行$_SESSION['color2'] = intval($_GET['color2']);
这意味着您将颜色存储为易于使用intval()
进行消毒的数字。当您需要显示已选择的颜色时,您可以编写一个带数字的方法并返回带颜色的字符串。 (简单的开关声明)。这将阻止人们用一些垃圾注入你的HTML。
function get_colour($i){
switch(intval($i)){
case 1:
$colour = "blue";
break;
case 2:
$colour = "red";
break;
default:
$colour = "blue"; // default colour when people try to fiddle with injection
break;
}
return $colour;
}
答案 1 :(得分:1)
onchange=" window.location.href='recom.php?color1='+this.value+'
&color2='+document.getElement[..]
"
还要考虑使用jQuery
答案 2 :(得分:1)
您可以将两个单选按钮放在一个表单中,在两个onchange事件中,只需提交表单即可。
答案 3 :(得分:0)
只需使用课程......
<input type="radio" name="color1" value="black" class="myElementClass"> Black <br />
<input type="radio" name="color2" value="white" class="myElementClass"> White <br />
Jquery {
$(.myElementClass).change(function() {
//do whatever i want
});
}
答案 4 :(得分:0)
尝试这样的事情:
select first color:<br/>
<input type="radio" name="color1" value="black" onchange="window.location.href='<?php if(isset($_GET['color2'] echo"\'recom.php?color1=\'+this.value+\'&color2=".$_GET['color2'];else echo"\'recom.php\'+this.value";?>> black<br />