PHP form submits to itself. When clicking on paginating links. All except the Form, vanishes -
it self-submitting form. have 3 independent select lists selected values passed parameters sql query.
when click on button, data displayed fine, limited, , link pages below. but:
when click on page links, result set , links disappear sight (only select lists remain in sight). believe related isset condition that, if values have not been set, display form, if values have been set, process form. so, first result set displays correctly, when try go second page form interprets select lists not set because reset , because have not clicked on button if click on links instead , therefore, wipes out not html form.
there no error in paginating code. error in how link form paginating method. , can't know how should.
if (isset($_post['submitted'])) { /***************if set, process values*************************/ $oldcountry = false; $oldfrom = false; $oldinto = false; // here checking variables have been selected if (isset($_post['country'])) { $oldcountry = $_post['country']; $country = filter_var($oldcountry, filter_sanitize_string); } else { echo 'please, select country'; } if (isset($_post['from_language'])) { $oldfrom = $_post['from_language']; $from_language = filter_var($oldfrom, filter_sanitize_string); } else { echo 'no has metido el language'; } if (isset($_post['into_language'])) { $oldinto = $_post['into_language']; $into_language = filter_var($oldinto, filter_sanitize_string); } // so, once have selected them , clicked button, go query // , paginate results require_once('bdd1.php'); $per_page = 6; $pages_query = mysql_query("select count(fname) work_assignment, developer aes_decrypt(country, 'elperrodesanroquenotienerabo') = '".$country."' , from_language = '".$from_language."' , into_language = '".$into_language."' , work_assignment.developer_id = developer.developer_id order fname asc "); $pages = ceil (mysql_result($pages_query, 0) /$per_page); $page = (isset($_get['page'])) ? (int)$_get['page'] : 1; $start = ($page - 1) * $per_page; $query = mysql_query("select fname work_assignment, developer aes_decrypt(country, 'elperrodesanroquenotienerabo') = '".$country."' , from_language = '".$from_language."' , into_language = '".$into_language."' , work_assignment.developer_id = developer.developer_id order fname asc limit $start, $per_page"); while ($query_row = mysql_fetch_assoc($query)){ echo '<p>', $query_row['fname'], '</p>'; } if ($pages >=1) { for($x = 1; $x <=$pages; $x++){ echo '<a href="?page='.$x. '">'.$x.'</a> '; } } } /************* end of if isset process *******************************/ ?> update update
after help, managed write url string makes page links work. yet, still need tweak hardcoded name of country (basically estonia) instead of embedding variable represents it, can't make url written:
this works:
echo '<a href="?country=estonia&from_language=russian&into_language=latvian&submitted=true& page='.$x. '">'.$x.'</a> '; i need replace estonia $country, , russian $from_language , latvian $into_language. have tried possible combinations of single , double quotes , dots , syntax errors. know how write that?
$_post values set if information sent post request, example has method=post. when submit form method post (button=submit) $_post values set. whenever klick link, request new page sent server.
if need information available after first form submit, should use session. (http://php.net/manual/de/features.sessions.php) sessions stored each client (webbrowser) , available until session times out (please see manual). have set session variables first time form gets submitted. afterwards can use values session.
/edit
if not want use session, add filter criteria url parameters (index.php?groupby=country) normal links. accessed $_get.
Comments
Post a Comment