HiddenField发布没有名称的值

时间:2014-09-21 17:16:02

标签: php html post field hiddenfield

这很奇怪,我以前从未见过这个。我使用post将值发布回同一页面进行处理。一切正常,直到我尝试使用隐藏字段发布值。使用相同的惯例我以前使用了一百万次。奇怪的是,它没有使用提供的名称发布,它只是使用hiddenField作为名称。这是代码

<input name="eid" type="hidden" id="eid" value="<? print $_GET['eid']; ?>" />

我用它来解决这个问题

print_r($_POST);

这是结果

  

[hiddenField] =&gt; 6

现在,它发布了值,并在发布之前发布了隐藏字段中的正确值,但由于某些原因我似乎无法弄清楚,它不使用我在HTML中设置的name属性识别它。我所有的其他值都在使用已发布的名称。任何见解都会受到高度赞赏,因为我不希望以后再处理一些尴尬的隐藏字段。

编辑:这是页面的其余代码(相关部分)

 <?
    if (isset($_POST['Submit']))
    {
        print "<p>EID: " . $_POST['hiddenField'] . "</p>";
        $eid = $_POST['hiddenField'];
        $name = $_POST['name'];
        $email = $_POST['email'];
        $ncount = count($name);
        $ecount = count($email);
        $hash = uniqid() . "-" . count($name);
        if ($ncount == $ecount)
        {
            $test = true;
            for ($i = 0; $i < $ncount; $i++)
            {
                if ($name[$i] == "" || $email[$i] == "")
                {
                    $test = false;
                }
            }

            if ($test)
            {
                $tickets[] = array();
                for ($i = 0; $i< $ncount; $i++)
                {
                    $unique = false;
                    while (!$unique)
                    {
                        $tickets[$i] = generateCode();
                        $check_query = "SELECT id FROM ticket WHERE ticket_number='" . $tickets[$i] . "'";

                        if ($stmt = $mysqli->prepare($check_query))
                        {
                            $stmt->execute();
                            $stmt->store_result();
                            $count = $stmt->num_rows;
                            $stmt->close();
                            if ($count == 0) 
                            {
                                $unique = true;
                            } else {
                                print "<p>Not unique</p>";
                            }

                        } else {
                            print "<p>Failed to work database</p>";
                        }
                    }
                    if ($unique == true) 
                    {
                        $query = "INSERT INTO ticket (`ticket_number`, `event_id`, `name`, `email`,`date_created`, `hash`) VALUES (?,?,?,?,NOW(),?)";
                        print "<p>Ticket #" . $tickets[$i] . " Event Id: " . $eid . " Name: " . $name[$i] . " Email: " . $email[$i] . " Hash: " . $hash . "</p>";
                        if ($stmt = $mysqli->prepare($query)) 
                        {
                            $stmt->bind_param('sisss', $tickets[$i], $eid, $name[$i], $email[$i], $hash);
                            $stmt->execute();
                            $number = $stmt->affected_rows;
                        } else {
                            print "<p>Could not insert into DB because " . $stmt->error . "</p>";

                        }
                    }
                }
            }

        }
    }
  <form action="register.php" method="post">
        <table width="896" border="0">
        <?

        for($i = 0; $i<$_GET['quant']; $i++)
        {
        ?>  <tr>
        <td><strong>Attendee <? print $z = $i+1; ?></strong></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td width="215">Name</td>
        <td width="671"><label for="name"></label>
          <input type="text" name="name[]" id="name" /></td>
      </tr>
      <tr>
        <td>Email Address</td>
        <td><input type="text" name="email[]" id="name2" /></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>

      <?
        }
    }


    ?>


      <tr>
        <td><input name="eid" type="hidden" id="eid" value="<? print $_GET['eid']; ?>" /></td>
        <td><input type="submit" name="Submit" id="Submit" value="Submit" /></td>
      </tr>
    </table>
    </form>

0 个答案:

没有答案