【问题标题】:PHP Dynamic Radio Buttons and Submit ButtonPHP 动态单选按钮和提交按钮
【发布时间】:2012-04-05 09:53:11
【问题描述】:

我正在尝试创建一个 php 文件,该文件将扫描一个目录,制作一个动态单选按钮列表,让用户选择一个并提交它,它会将其传递到另一个 php 文件中,然后将其发送出去,但我提交按钮有问题。想知道我是否能得到一些答案,在网上四处寻找,却找不到任何东西。 这是我的代码:

<?php

ini_set('display_errors',true);
//Scan directory (ripped from another site)
$directory = opendir("download");
while($entry = readdir($directory)) {
    $dirArray[] = $entry;
}
closedir($directory);
$indexCount = count($dirArray);
sort($dirArray);

//Make the Radio Button list
$RList = "";
for($i=2; $i<count($dirArray); $i++) {
    $value = $dirArray[$i];
    $RList .= "<input type=\"radio\" name=\"Files\" value=".$value." />".$value."<br />";
}
//Submit button
$RButton = '<input type="button" value="Submit" 
onclick="location.href=\'http://localhost/appClient/load.php?file='.$value.'\'">';
echo $RList.$RButton;
#echo $_POST["Files"];

?>

谢谢

【问题讨论】:

  • 你遇到了什么麻烦?什么不适用于您当前的代码?请更具体。
  • 你的单选按钮和提交按钮太多了!
  • @JamWaffles 当我单击提交时没有获取正确的文件,因此 $value 存在问题,没有传递正确的数据。那么,您将如何在提交点击时将用户选择的文件名传递给 load.php?

标签: php dynamic radio-button


【解决方案1】:

您似乎正在将$value 传递给onclick 事件。由于这在 PHP 循环之外,它最终将始终是最后一个 $value

要解决此问题,请使用 javascript 从收音机中获取所选值并将其附加到 onclick 重定向。

更好的是,您的load.php 文件应该只是简单地检查$_POST 中的“文件”键并使用它,而不是使用GET。毕竟,这就是提交单选按钮的意义所在。

【讨论】:

  • 哦,我没注意到。我对这一切都很陌生,但是有没有办法通过 php 做到这一点?如果没有,我可以在 php 编程块中使用 javascript 吗?还是我会从 php 调用外部 javascript 函数?
  • 要通过 PHP 完成,请使用适当的表单标签和 POST 方法,提交时它将在 $_POST['Files'] 中可用。无需点击。
  • 太棒了!终于让它工作了!谢谢大家帮助! @jeremyharris & alvariux
【解决方案2】:

我没有看到&lt;form&gt; 标签,尝试添加它,因为所有按钮和输入都必须在&lt;form&gt;

您的脚本是否已经在调用文件 load.php 或按钮不起作用?

【讨论】:

  • 我认为他不需要使用表单标签。他在原始代码中传递了链接:$RButton = '&lt;input type="button" value="Submit" onclick="location.href=\'http://localhost/appClient/load.php?file='.$value.'\'"&gt;';
  • 我不知道如何正确地将 $value 传递给 load.php。它总是会传递同一个文件。即使选择了另一个。是的,我对其进行了硬编码,因为如果可能的话,我会尝试在纯 php 中执行此操作。
  • as @jeremyharris sugest,尝试使用帖子表单&lt;form method="post" action="load.php"&gt; 然后将按钮更改为仅&lt;input type="submit" value="Select file"&gt;,您将需要查找变量$_POST['Files']