【问题标题】:How to get the right forms value from a button click如何通过单击按钮获得正确的表单值
【发布时间】:2015-06-03 11:21:27
【问题描述】:

我的问题概述:

我有一个通过 XML 输入填充的数组,我使用它来填充带有表单控件的 Web 表单。从这里我希望能够选择被点击的确切形式,但要做到这一点,我需要为控件提供某种形式的唯一标识符,这是一个问题......

由于该网站具有博彩性质,并且我目前正在从事赛马工作,因此默认情况下每匹马都有一个唯一标识符,我已尝试将此标识符添加到表单中。 例如:

<?php
//Values from feed examples: 123, 234, 345
$valuesFromFeed = array(123, 234, 345); //These are not in my code, they are values from the XML feed

while ($uniqueIdentifier = $valueFromFeed) {
    <form name="horse_<?php echo $uniqueIdentifier; ?>_frm" action="#">
        <input type="hidden" name="horse_<?php echo $uniqueIdentifier; ?>" />
        <input type="button" value="Place bet" />
    </form>
}
?>

但是当我尝试引用“horse_123”这个名字时,问题就来了,我需要确切地知道这个名字的价值,这是不可能的,因为有数百万匹马、赛道和比赛。
尝试获取帖子的示例:

<?php
if (isset($_POST['horse_' . $uniqueIdetifier])) {
    echo "You got the right thing here.";
} else {
    echo "Still no joy.";
}
?>

上面代码的问题是,一旦$uniqueIdentifier 在上面的while 中被使用过,它就会被删除并且在这个范围内不再可用。

总结一下,我的观点和问题:

  • 如何从提交的表单中为我希望引用和获取信息的特定马匹获取正确的名称?
  • 如何根据需要使用这些信息?
  • 更好的描述:

    作为移交的一部分,我收到了一个 XML 提要和网站,该提要包含数百场比赛和马匹。

    当此信息加载到页面中时,它也存储在服务器上的数据库中,并通过一些不同的循环发送它(这些循环很混乱,但我正在尝试清理其他人的代码!)将它拆分然后组成一个动态菜单,其中包含所有比赛、马匹、赔率和信息。 (比赛中单匹马的所有信息都以一种形式保存)

    在上一段所述的信息旁边,是 2 个按钮,一个允许用户接受赔率,另一个允许用户接受起始价格。

    在这些按钮单击中的任何一个上,我都需要附加到所述马匹的信息,然后填写投注单。在(上面提到的)表格中,名称是"horse_&lt;?php echo $uniqueIdentifier; ?&gt;_frm"

    我遇到的问题是,是的,数据在加载时存储在服务器上,我似乎无法通过表单名称中的唯一标识符获得正确的表单

    编辑

  • 添加了围绕我的输入的表单,因为它在那里,我只是在原始问题中错过了它
  • 添加了将数据传输到我需要的地方的按钮
  • 添加了对我的问题的更好描述
  • 【问题讨论】:

      标签: php html forms input hidden-field


      【解决方案1】:

      您可以使用多种形式,每匹马一个。每个表单都有不同的操作,其中 URL 包含马的 id。例如:

      <form action="/horses/my_unique_horse_name">
        ...   
      </form>
      
      <form action="/horses/another_horse_name">
        ...   
      </form>
      

      或者您可以有多个表单,所有表单都具有相同的操作,并带有一个隐藏字段用于马名:

      <form action="/horses/">
        <input type="hidden" value="my_unique_horse_name">
      </form>
      
      <form action="/horses/">
        <input type="hidden" value="another_horse_name">
      </form>
      

      或者,您可以为每匹马设置一个按钮:

      <form method="/horses/">
        <button type="submit" value="my_unique_horse_name">My Horse</button>
        <button type="submit" value="another_horse_name">Another Horse</button>
      </form>
      

      除此之外,我并不完全理解这个问题。您提交和检索什么样的数据?

      【讨论】:

      • 此刻,我正在尝试接收与马匹相关的所有数据,例如赔率和比赛地点,我遇到的问题是如果没有完整的表格,我无法获得正确的表格POST 检查中包含所有马 id 的填充列表
      • @SamuelGSwift 您需要提交一份所有马匹 ID 的列表吗?为什么这些不存储在服务器上?此外,如果您尝试接收数据,通常最好使用 GET 请求而不是 POST。
      • 由于客户的要求,我有义务将所有数据保留在 URL 之外,因此为什么 GET 请求不适合,尽管我同意你的观点,并且存储信息仍然吸引我这是一个很大的问题,因为我必须有一个列表来循环遍历,其中包含数百条甚至数千条信息,这会减慢整个系统的速度,除非 AJAX 适合这种情况?
      • 恐怕我不能,因为我没有 20 个代表 :(
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-28
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 2021-09-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多