提交php表单?

时间:2011-10-22 18:53:24

标签: php mysql sql

大家好,我正在从我的mysql数据库中获取结果并制作了一个html表单,并在php旁边放了一个提交按钮来提交表单。

<form method="post" action="buydo.php">
                <label><br />
                <br />
                </label>
                <p>


                <?php   
    $sql = "SELECT pokemon_name, Pokemon_pic, Pokemon_level, price FROM sell
             ORDER BY Pokemon_level ASC";
    $res = mysql_query($sql) or die(mysql_error());

        while ($v = mysql_fetch_array($res)) {
            echo '
                <div class="auction_box">
                <img src="http://pokemontoxic.net/new_rpg/'.$v['Pokemon_pic'].'" width="100" height="100"><br/>
                &pound;'.$v['price'].'<br/>
                <label id="pokemonName'.$v['id'].'">'.$v['pokemon_name'].'</label><br/>

                <label>Level '.$v['Pokemon_level'].'</level><br/>
                <label>Time Left:';

                echo '</label>
                <br/>
                <input type="submit" id="'.$v['id'].'" class="buy_submit" value="Buy Now" /> </div>';
        }

?>



                &nbsp;</p>
                <p>&nbsp;</p>
              </form>

我在buydo.php上打印了所有$ _posts但是我什么都没做我想做的就是从这个脚本获取$ v ['id']到buydo页面。但是对于一些resson ent进入下一页。我有连接和会话启动它显示结果和一切只是当我按下提交按钮信息没有被提交我接受buydo.php但没有被发布??

3 个答案:

答案 0 :(得分:2)

尝试在提交输入的正上方创建一个隐藏的输入(它可以真正去任何地方,但在那里可以提高可读性)。将名称设置为静态名称 - 例如,“pokemonID​​” - 并将value属性设置为您要发送到下一页的任何内容。在这种情况下,它将是$ v ['id']。类似的东西可行:

<input type="hidden" name="pokemonID" value="' . $v['id'] . '" />

在php页面上,你可以使用$ _POST ['pokemonID​​']来访问数据。

答案 1 :(得分:1)

如果我理解你是正确的,你会加载buydo.php页面,但是你没有提交提交的值,以便你可以使用$_POST访问它?

那是因为你的表单中没有任何输入元素。添加隐藏字段可以解决问题:

<input type="hidden" name="vid" value="'.$v['id'].'">

现在,您可以使用$_POST['vid']上的buydo.php来访问该值。

答案 2 :(得分:1)

id属性通常不会发布,其主要用途与标识符在同一HTML中。

通过POST(或GET)提交的内容是名称和值字段:

例如:<input name='inputname' value='inputvalue' />会使提交目标页面获得$ _POST ['inputname'] ='inputvalue'

您始终可以使用隐藏字段: <input type='hidden' name='id'.<unique_identifier_for_this_result> value=$v['id'] />

并有相应的帖子

<input type='submit' name='submit'.<the_same_unique_identifier_for_this_result> value='Buy' />

接收页面应该已经接收到表单中的所有隐藏字段,并且只接收了您选择的提交字段。 I.E.如果你点击'submit22'(标识符= 22),那么$ _POST ['submit22']将被设置,你感兴趣的实际隐藏字段将是$ _POST ['id22']

另一种方法是将每个结果拆分为单独的形式:

$sql = "SELECT pokemon_name, Pokemon_pic, Pokemon_level, price FROM sell
         ORDER BY Pokemon_level ASC";
$res = mysql_query($sql) or die(mysql_error());

    while ($v = mysql_fetch_array($res)) {
        echo '<form method="post" action="buydo.php">
              ...
              <input type="hidden" name="id" value='.$v['id'].'
              <input type="submit" name="SubmB" value="Buy">
              </form>'