【问题标题】:Pass form value to function to get array value将表单值传递给函数以获取数组值
【发布时间】:2017-02-28 21:58:00
【问题描述】:

我已经阅读了几个教程来尝试解决这个问题。我的代码在文本输入框上运行良好,但我也在尝试将单选框传递给我的函数并使用它来获取我的数组值。

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

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",
];
...

我坚持使用将获取单选按钮值(1/2/3)然后查找等效数组值并输出颜色的代码,即:如果选择了值为 1 的单选按钮,然后我们输出1#9E2A2B

【问题讨论】:

  • GET != POST.... 因为$colourdata = urldecode($_GET['colour']); 永远无法通过。
  • 你指的是pngfile.php中的代码吗?如果我将其更改为发布它不起作用,但它确实与 get
  • 我编辑了我的评论;使用错误报告。

标签: php arrays function


【解决方案1】:
<form action="/app.php" method="post">

表单方法 POST 不是 GET

$_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;
...

【讨论】:

  • 谢谢你的回复,这行也要发吗? $textdata = urldecode($_GET['data']);
  • @Jimmy:对于此表单的所有字段都是肯定的,因为您已在此处为所有表单选择了 POST 方法:&lt;form action="/app.php" method="post"&gt;
猜你喜欢
  • 1970-01-01
  • 2018-04-04
  • 2022-06-16
  • 1970-01-01
  • 2020-07-11
  • 2019-04-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多