fabien fabien - 4 months ago 11
MySQL Question

PHP : Create some form and submit it with <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 !

Answer

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;
}