时间:2016-05-05 15:24:49

标签: php

我有一个显示数据库演出的页面。首次加载仅显示每个条目的标题,显示完整详细信息的按钮,以及要删除的按钮(尚未使用)

我无法为foreach循环的每个条目传递ID值。无论我点击哪一个,它总是传递最后一个条目的ID号。所以我总是看到第二次演出的细节,即使我点击第一个。 (我现在在数据库中只有两个演出)

如何传递我点击SHOW按钮的ID的任何建议?

这是我的代码

require_once "gigPDO.php";


//Show button is pressed

if (isset ( $_POST ["show"])) {
    $id = $_POST ["id"];
    //$id = 5;

    try {

    $dbase = new gigPDO(); 
    $result = $dbase->searchGig($id); 

    //print_r($result);

    foreach($result as $gig){
        print("<p>Title: " . $gig->getTitle());
        print ("<br>Venue: " . $gig->getVenue());
        print ("<br>Date: " . $gig->getDate());
        print ("<br>Time: " . $gig->getTime());
        print ("<br>Country: " . $gig->getCountry());
        print ("<br>Address: " . $gig->getAddress());
        print ("<br>Postcode: " . $gig->getPostcode());
        print ("<br>City: " . $gig->getCity());
        print("<br>Description: " . $gig->getDescription() . "</p>");
        echo "<br />";

        unset($_POST ["show"]);
        echo "<a href='searchGigs.php'>Back to list</a>";
        exit();                


    }
    exit ();


} catch ( Exception $error ) {
    print("<p>Error: " . $error->getMessage ());
    exit ();
}
    }

//First load, shows all gigs

try {

    $dbase = new gigPDO(); 
    $result = $dbase->allGigs();


    foreach($result as $gig){
        print("<p>". $gig->getTitle(). "<p>");
        print ("<input type='hidden' name='id' value='".$gig->getId() ."'>");
        print('<input type="submit" name="show" class="next show-button" value="Show" />');
        print(' <input type="submit" name="delete" class="next show-button" value="Delete" />');
        echo "<br />";
        echo "<br />";                
    }


    if ($dbase->getRows() == 0){
        print("There are no gigs in the database yet");

     }else{       
        print("<p>Total " . $dbase->getRows() . " gigs</p>");
       }
} catch ( Exception $error ) {
    print("<p>Error: " . $error->getMessage ());

}

1 个答案:

答案 0 :(得分:0)

如果您使用var selectedItem = Colors.Items .Cast<ComboBoxItem>() .Where(e => e.Tag.ToString() == "#FDB75B") .FirstOrDefault(); Colors.SelectedItem = selectedItem; 代替button,则可以将ID嵌入按钮而不是使用隐藏输入。

input type="submit"

您当前的工作方式可以工作,但您需要在每组输入周围添加单独的echo '<button type="submit" name="id" class="next show-button" value="'.$gig->getId().'" /> Show </button>'; 标记。目前,当您提交表单时,所有这些隐藏的输入都会被提交,并且由于它们具有相同的名称,因此您将获得最后一个的值。按照我建议的方式进行操作,只会提交您点击的按钮的值。