2010-03-05 6 views
1
pagination

J'ai utilisé récemment un tutoriel PHP pagination, Pagination - what it is and how to do it, pour afficher des informations enregistrement dans une base MySQL. Le problème est que la page envoie uniquement les informations envoyées sous la forme la plus récente, et je ne suis pas sûr de savoir comment résoudre le problème.formulaire HTML ne pas envoyer des données correctes, PHP

Le code de sortie du formulaire est indiqué ci-dessous.

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

Répondre

0

Vous devez transmettre manuellement les données de formulaire à la page suivante. Cette partie la plus importante est toujours oubliée par les auteurs de didacticiels.

Vous devez passer à d'autres pages, non seulement le numéro de page, mais l'ensemble des données de formulaire. J'espère que votre formulaire utilise la méthode GET, comme il se doit, donc, vous avez vos données soit dans le $_SERVER['QUERY_STRING'] comme une chaîne ou le tableau $_GET. Ainsi, vous pouvez faire regexp pagenumber dans le QUERY_STRING, ou assembler un autre QUERY_STRING du tableau $_GET, comme ceci:

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