簡體   English   中英

HTML表單未發送正確的數據,PHP分頁

[英]HTML form not sending correct data, PHP pagination

最近,我使用了PHP分頁教程Pagination-它是什么以及如何執行 ,以顯示來自MySQL數據庫的記錄信息。 問題在於該頁面僅發送以最新形式發送的信息,而我不確定如何解決該問題。

表單輸出的代碼如下所示。

$musicitems = getmusicitems($pagenumber,$prevpage,$lastpage,$nextpage);
$count = ($musicitems==NULL) ? 0 : mysql_num_rows($musicitems);
for ($i=0;$i<$count;$i++)
{
    $records = mysql_fetch_assoc($musicitems);
    print'
        <label for="deleteMusicItem'.$records['m_id'].'" id="deleteMusicItemLabel'.$records['m_id'].'">Delete Music Record:</label>
        <input type="checkbox" name="deleteMusicItem"  id ="deleteMusicItem'.$records['m_id'].'" value="delete" />
        <br/>
        <label for="artistname'.$records['m_id'].'" id="artistLabel'.$records['m_id'].'">Artist Name:</label>
        <input type="text" size="30" name="artistname" class="artistname1" id ="artistname'.$records['m_id'].'" value="'.$records['artistname'].'" />
        <br/>
        <label for="recordname'.$records['m_id'].'" id="recordnameLabel'.$records['m_id'].'">Record Name:</label>
        <input type="text" size="30" name="recordname" class="recordname1" id ="recordname'.$records['m_id'].'" value="'.$records['recordname'].'"/>
        <br/>
        <label for="recordtype'.$records['m_id'].'" id="recordtypeLabel'.$records['m_id'].'">Record type:</label>
        <input type="text" size="20" name="recordtype" class="recordtype1" id ="recordtype'.$records['m_id'].'" value="'.$records['recordtype'].'"/>
        <br/>
        <label for="format'.$records['m_id'].'" id="formatLabel'.$records['m_id'].'">Format:</label>
        <input type="text" size="20" name="format" class="format1" id ="format'.$records['m_id'].'" value="'.$records['format'].'"/>
        <br/>
        <label for="price'.$records['m_id'].'" id="priceLabel'.$records['m_id'].'">Price:</label>
        <input type="text" size="10" name="price" class="price1" id ="price'.$records['m_id'].'" value="'.$records['price'].'"/>
        <br/><br/>
    ';
    $musicfiles=getmusicfiles($records['m_id']);
    for($j=0; $j<2; $j++)
    {
        $mus=mysql_fetch_assoc($musicfiles);
        if(file_exists($mus['musicpath']))
        {
            echo '<a href="'.$mus['musicpath'].'">'.$mus['musicname'].'</a><br/>';
        }
        else
        {
            echo '<label for="musicFile'.$records['m_id'].'" id="musicFileLabel'.$records['m_id'].'">Music:</label> <input type="file" size="40" name="musicFile1" id="musicFile'.$records['m_id'].'"/><br/>';
        }
    }
    $pictures=getpictures($records['m_id']);
    for($j=0;$j<2;$j++)
    {
        $pics=mysql_fetch_assoc($pictures);
        if(file_exists($pics['picturepath']))
        {
            echo '<img src="'.$pics['picturepath'].'" width="150" height="150"><br/>';
        }
        else
        {
            echo '<label for="pictureFile'.$records['m_id'].'" id="pictureFileLabel'.$records['m_id'].'">Picture:</label><input type="file" size="40" name="pictureFile1" id="pictureFile'.$records['m_id'].'"/><br/>';
        }
    }
}

echo'<input type="submit" value="Submit" name="modfiymusicitem" id="modfiymusicitem" /> ';
if ($pagenumber == 1) {
    echo " FIRST PREV ";
}
else {
    echo " <a href='{$_SERVER['PHP_SELF']}?pagenumber=1'>FIRST</a> ";
    $prevpage = $pagenumber-1;
    echo " <a href='{$_SERVER['PHP_SELF']}?pagenumber=$prevpage'>PREV</a> ";
}
echo "(Page $pagenumber of $lastpage)";
if ($pagenumber == $lastpage) {
    echo " NEXT LAST ";
}
else {
    $nextpage = $pagenumber+1;
    echo " <a href='{$_SERVER['PHP_SELF']}?pagenumber=$nextpage'>NEXT</a> ";
    echo " <a href='{$_SERVER['PHP_SELF']}?pagenumber=$lastpage'>LAST</a> ";
}

您必須手動將表單數據傳遞到下一頁。 這是最重要的部分,始終被教程作者所遺忘。

您不僅必須傳遞頁碼,還必須傳遞整個表單數據到其他頁面。 我希望您的表單按原樣使用GET方法,因此,您可以將數據作為字符串或$_GET數組存儲在$_SERVER['QUERY_STRING']中。 因此,您可以在QUERY_STRING執行regexp pagenumber ,也可以從$_GET數組中組合另一個QUERY_STRING ,如下所示:

$_GET['pagenumber']=$nextpage;
$query_string=http_build_query($_GET);
echo " <a href='{$_SERVER['PHP_SELF']}?$query_string'>NEXT</a> "; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM