如何使用“onchange =”向PHP发送多个值?

时间:2011-06-23 23:24:27

标签: php javascript html radio-button onchange

我有两个单选按钮类别: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

5 个答案:

答案 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 />