Php 将表单值传递给函数以获取数组值

Php 将表单值传递给函数以获取数组值,php,arrays,function,Php,Arrays,Function,我已经阅读了几篇教程,试图解决这个问题。我的代码可以很好地处理文本输入框,但是我也尝试将这个单选框传递给我的函数,并使用它来获取数组值 稍后我将实现表单验证和清理等功能,但现在我只希望能够在函数中输出数组结果,具体取决于选择的单选按钮。这是我尝试过的代码: index.php <?php if (isset($_POST['submit'])) { $data = $_POST['name']; // the data from text input. $colour = $

我已经阅读了几篇教程,试图解决这个问题。我的代码可以很好地处理文本输入框,但是我也尝试将这个单选框传递给我的函数,并使用它来获取数组值

稍后我将实现表单验证和清理等功能,但现在我只希望能够在函数中输出数组结果,具体取决于选择的单选按钮。这是我尝试过的代码:

index.php

<?php 
if (isset($_POST['submit'])) {
   $data = $_POST['name']; // the data from text input.
   $colour = $_POST['colour']; // data from colour radio.
}
?>
...
<form action="/app.php" method="post">
<input type="text" name="name">
<input name="colour" type="radio" value="1">Red
<input name="colour" type="radio" value="2">Blue
<input name="colour" type="radio" value="3">Green
<input type="submit" name="submit" value="Submit">
</form>
 <img src="pngfile.php?data=<?php print urlencode($data);?>">

...
红色
蓝色
绿色
">
pngfile.php

<?php
    require_once 'functions.php';  
   $textdata = urldecode($_GET['data']);
   $colourdata = urldecode($_GET['colour']);
   process($textdata,$colourdata);
   exit;
?>

functions.php

<?php

/* Generate Image */
function process($textdata, $colourdata)
{

$colour_array = [
    "1" => "#9E2A2B",
    "2" => "#3E5C76",
    "3" => "#335C67",
];
...

在功能上

function process($textdata, $colourdata)
{

$colour_array = [
    "1" => "#9E2A2B",
    "2" => "#3E5C76",
    "3" => "#335C67",
];

$color = isset($colour_array[$colourdata]) ? $colour_array[$colourdata] : false;
...

GET!=POST….as
$colordata=urldecode($\u GET['color']);
永远无法通过。你是指pngfile.php中的代码吗?如果我将其更改为POST,它将不起作用,但在getI编辑我的评论时会起作用;请使用错误报告。感谢你的回复,这一行是否也应该发布?$textdata=urldecode($\u GET['data'));@Jimmy:此表单的所有字段均为“是”,因为您已为所有表单选择了“在此发布”方法:
$_GET['colour'] edit to $_POST['colour']
function process($textdata, $colourdata)
{

$colour_array = [
    "1" => "#9E2A2B",
    "2" => "#3E5C76",
    "3" => "#335C67",
];

$color = isset($colour_array[$colourdata]) ? $colour_array[$colourdata] : false;
...