PHP:创建一些表单并使用

PHP:创建一些表单并使用<a href提交

问题描述:

Sorry for my spelling... Im trying to print a list of internets forfeit from my database and then when I click on the hyperlink, it send the id of the forfeit to the page.I have tried to put the id in a hidden value but nothing works, im truck there...

    include_once "DataBase/db.php";                 
    if($internet->num_rows != 0){
        while($rows = $internet->fetch_assoc()){
            $nom = $rows["nom"];
            $id = $rows["id"];
            $tech = $rows["technologie"];
            $telechargement = $rows["telechargement"];
            $televersement = $rows["televersement"];
            $utilisation = $rows["utilisation"];
            $prix= $rows["prix"];

            echo '
   <form name="form2" method="POST"     action="Fournisseurs/Videotron.php">
      <div class="boxes">
       <div class="[ price-option price-option--high ]">
        <div class="price-option__detail">
           <span class="price-option__cost">'.$nom.'<br>$'.$prix.'</span>
            </div>
            **<input type="hidden" name="id" value="'.$id.'"></input>
              <a href="Fournisseurs/Videotron.php" onclick="document.forms["form2"].submit(); class="price-option__purchase">Voir</a>** 
                </div>
                </div>
            </form>';
        }
}   

then on the second page, i would take the forfeit id to get the rest of data... if its not clear, you guys can see what im talking about here : http://fournisseursquebec.com/Forfaits.php then select internet... Thank you !

I would just turn the link into a button and submit normally. It's possible that you are running into malformation of your html by the way you have concatenated your string in PHP. You would need to do some escaping in your scenario. This is what you have:

<!--                                                  wrong--v-----v missing---v                   -->
<a href="Fournisseurs/Videotron.php" onclick="document.forms["form2"].submit(); class="price-option__purchase">Voir</a>

Just change it to a button or submit and style it that way:

include_once("DataBase/db.php");                 
if($internet->num_rows != 0){
    while($rows = $internet->fetch_assoc()){
        $nom = $rows["nom"];
        $id = $rows["id"];
        $tech = $rows["technologie"];
        $telechargement = $rows["telechargement"];
        $televersement = $rows["televersement"];
        $utilisation = $rows["utilisation"];
        $prix= $rows["prix"];
?>
<form name="form2" method="POST" action="Fournisseurs/Videotron.php">
    <div class="boxes">
        <div class="[ price-option price-option--high ]">
            <div class="price-option__detail">
               <span class="price-option__cost"><?php echo $nom; ?><br>$<?php echo $prix; ?></span>
            </div>
            <input type="hidden" name="action" value="delete_id" />
            <input type="hidden" name="id" value="<?php echo $id; ?>" />
            **<div class="price-option__purchase">
                <input type="submit" value="Voir" />
            </div>**
        </div>
    </div>
</form>
<?php
    }
}

Apply your css to the submit button.

price-option__purchase input {
    background-color: red;
    color: #fff;
    display: block;
    width: 200px;
    height: 200px;
}

This may or may not be the best solve but you could use a session for this. Place this inside of your while loop.

<?php
session_start();
$_SESSION['id'] = $id;
?>

On your second form just do the same but reverse it.

<?php
session_start();
$id = $_SESSION['id'];
?>