0

我正在研究评级系统。用户可以使用下拉菜单对项目进行评分:

<select name = "theRating">
<option>Select...</option>
<option>1 Star</option>
<option>2 Stars</option>
<option>3 Stars</option>
<option>4 Stars</option>
<option>5 Stars</option>
</select>

在同一个文档中,就在几行之后,我想通过 url 发送选定的选项

<form action="', $scripturl, '?action=rateThisThing?rating=',$_POST['theRating'],'" method="post">
<input type="submit" value="Rate this"></form>

为什么这不起作用?$_POST['theRating'] 似乎是空的 [或者至少,它没有在重定向时出现在 URL 中......]

4

2 回答 2

1

这里有很多问题。首先是挑剔,然后是主要问题。挑剔:您使用了错误的 PHP 连接器:它是.,不是,,您需要将它包含在 PHP 标记中(<?php ?>

但是,这无关紧要,因为您从根本上误解了 PHP 与 javascript 的作用。PHP 是一种服务器端语言,只能在内容提供给客户端之前访问(除了 ajax)。您也没有正确格式化表单的 url 字符串。如果您在 URL 中传递多个变量,则使用与号 (&) 分隔它们,而不是?.

此外,如果您尝试通过post您在表单中指定的方式发送信息,那么为什么要尝试在 url 中传递数据?只需在表单中包含 select 并将表单的方法设置为get

<form action="target_file.php" method="get">
 <select name="theRating">
  <option>Select...</option>
  <option>1 Star</option>
  <option>2 Stars</option>
  <option>3 Stars</option>
  <option>4 Stars</option>
  <option>5 Stars</option>
 </select>
<input type='hidden' name='action' value='rateThisThing' />
 <input type="submit" value="Submit" />
</form>
于 2012-09-21T01:47:42.473 回答
0

In order to have data available via $_POST, something must be posted:

<form action="" method="post">
 <select name="theRating">
  <option>Select...</option>
  <option>1 Star</option>
  <option>2 Stars</option>
  <option>3 Stars</option>
  <option>4 Stars</option>
  <option>5 Stars</option>
 </select>
 <input type="submit" value="Submit" />
</form>

Once you submit this form, $_POST['theRating'] will be available on that page. Whatever script is running at $scripturl should either be on this page or included, so the script can use this data.

于 2012-09-21T01:49:40.383 回答