Υποσελιδα με POST....προβλημα

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Υποσελιδα με POST....προβλημα

Δημοσίευση από oikonomou » 22 Ιουν 2006 12:33

Παιδια εχω ενα προβλημα που δεν μπορω να ξεπερασω.

Εχω μια σελιδα οπου υπαρχει μια φορμα για αναζητηση. Η φορμα εχει action τον εαυτο της. Ετσι στην αρχη της κανω ελεγχο αν εχει οριστει η μεταβλητη POST που θελω να ψαχνω η οχι. Εαν εχει οριστει δηλαδη καποιος πατησε το ΟΚ για μια αναζητηση ψαχνω στην βαση μου και βγαζω τα αποτελεσματα. Μεχρι εδω ολα καλα.

Ομως επειδη τα αποτελεσματα ειναι παρα πολλα θελω να σπασω την σελιδα σε υποσελιδα. Δηλαδη τα γνωστα Previous και Νext.
Εχω βρει στο δικτυο ενα σκριπτ ΑΛΛΑ δουλευει μονο σε σελιδα χωρις φορμα δηλαδη χωρις ελεγχο στην αρχη για μεταβλητες POST.
Οταν παω να το βαλω στην σελιδα με την φορμα ενω δουλευει η πρωτη και μου βγαζει τον πινακα και Επομενη και Προηγουμενη σελιδα οταν παταω ας πουμε επομενη δεν εμφανιζει τιποτα.

Αυτο νομιζω γιατι ενω παιρνει την GET μεταβλητη και παει να δειξει τις επομενες 50 εγγραφες χανει την μεταβλητη POST και ετσι ειναι αδεια η result.

Συγκεκριμενα το σκριπτ που δουλευει για την απλη σελιδα ειναι το :

Κώδικας: Επιλογή όλων

<body >
 <?php
$db1 = @mysql_connect&#40;"localhost", "****", "********"&#41;;
$db2= @mysql_select_db&#40;"********"&#41;;
mysql_query&#40;"set character set 'greek'"&#41;; 
mysql_query&#40;"SET NAMES 'greek'"&#41;; 
$rowsPerPage = 50;
// by default we show first page
$pageNum = 1;
// if $_GET&#91;'page'&#93; defined, use it as page number
if&#40;isset&#40;$_GET&#91;'page'&#93;&#41;&#41;
&#123;
    $pageNum = $_GET&#91;'page'&#93;;
&#125;
// counting the offset
$offset = &#40;$pageNum - 1&#41; * $rowsPerPage;

$query="SELECT * FROM customers LIMIT $offset, $rowsPerPage";
$result=mysql_query&#40;$query&#41;;
$num=mysql_numrows&#40;$result&#41;;
$query2="SELECT * FROM customers";
$result2=mysql_query&#40;$query2&#41;;
$num2=mysql_numrows&#40;$result2&#41;;
mysql_close&#40;&#41;;

// how many pages we have when using paging?
$maxPage = ceil&#40;$num2/$rowsPerPage&#41;;

echo "<p align=center><font size=6>Καλώς ήρθατε</font></p>";
echo "<p>Υπάρχουν <b>$num2</b> εισαγμένοι στην βάση.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
<a href=insert.php>Εισαγωγή νέου </a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=search.php>Αναζήτηση </a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
echo "<a href=logout.php>Έξοδος από το σύστημα.</a></p>";
echo "<p><form id=form1 name=form1 method=get action=item.php>
Πάνε στην εγγραφή με id &#58; <input name=id type=text size=30 maxlength=6 />
    <input type=submit  value=OK /></form></p>";

echo "<br><table border=0 cellspacing=5 cellpadding=6>
<tr>
<th style=background-color&#58;#cccccc> Id </th>
<th style=background-color&#58;#cccccc>Όνομα </th>
<th style=background-color&#58;#cccccc>Κατηγορία</th>
<th style=background-color&#58;#cccccc>Νομός - Πόλη</th>
<th style=background-color&#58;#cccccc>Ημερομηνία</th>
</tr>";

$i=0;
$x=0;
while &#40;$i < $num&#41; &#123;

$id=mysql_result&#40;$result,$i,"id"&#41;;
$catid=mysql_result&#40;$result,$i,"catid"&#41;;
$stateid=mysql_result&#40;$result,$i,"stateid"&#41;;
$name=mysql_result&#40;$result,$i,"name"&#41;;
$date=mysql_result&#40;$result,$i,"date"&#41;;
$city=mysql_result&#40;$result,$i,"city"&#41;;

$x++;
if&#40;$x == 2&#41;&#123;$x=0;$bgcolor ="#D3DCE3";&#125; else $bgcolor = "#FFFFFF"; 

echo "<tr>
<td style=background-color&#58;$bgcolor>$id</td>
<td style=background-color&#58;$bgcolor><a href=item.php?id=$id>$name</a></td>
<td style=background-color&#58;$bgcolor>$catid</td>
<td style=background-color&#58;$bgcolor>$stateid - $city</td>
<td style=background-color&#58;$bgcolor>$date</td>
</tr>";

$i++;

&#125;

// print the link to access each page
$self = $_SERVER&#91;'PHP_SELF'&#93;;
$nav  = '';

for&#40;$page = 1; $page <= $maxPage; $page++&#41;
&#123;
   if &#40;$page == $pageNum&#41;
   &#123;
      $nav .= "Σελίδα $page "; // no need to create a link to current page
   &#125;
   else
   &#123;
      $nav .= " <a href=\"$self?page=$page\">$page</a> ";
   &#125; 
&#125;

// creating previous and next link
// plus the link to go straight to
// the first and last page

if &#40;$pageNum > 1&#41;
&#123;
   $page  = $pageNum - 1;
   $prev  = " <a href=\"$self?page=$page\">Προηγούμενη</a> ";

   $first = " <a href=\"$self?page=1\">Πρώτη σελίδα</a> ";
&#125; 
else
&#123;
   $prev  = '&nbsp;'; // we're on page one, don't print previous link
   $first = '&nbsp;'; // nor the first page link
&#125;

if &#40;$pageNum < $maxPage&#41;
&#123;
   $page = $pageNum + 1;
   $next = " <a href=\"$self?page=$page\">Επόμενη</a> ";

   $last = " <a href=\"$self?page=$maxPage\">Τελευταία σελίδα</a> ";
&#125; 
else
&#123;
   $next = '&nbsp;'; // we're on the last page, don't print next link
   $last = '&nbsp;'; // nor the last page link
&#125;

// print the navigation link
echo $first . $prev . "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" . $nav . "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" . $next . $last."<br>";
?>
</body>
</html>

Αυτο δουλευει τελεια. Οταν ομως εχω μια σελιδα με την φορμα που θελω να ψαχνει ανα κατηγορια και στην αρχη της κανω ελεγχο αν εχει στειλει δεδομενα η φορμα δηλαδη υπαρχει το :

Κώδικας: Επιλογή όλων

$cat1=$_POST&#91;"cat"&#93;;
if &#40;isset&#40;$cat1&#41; &#41; &#123;
....................κωδικας με το παραπανω σκριπτ...................
&#125;
υπαρχει λογικα προβλημα καθως γινετε ο ελεγχος και δεν υπαρχει η μεταβλητη POST αρα δεν εκτελειται τιποτα.

Δεν μπορω να βρω λυση στο προβλημα. Καμια ιδεα κανεις;

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Υποσελιδα με POST....προβλημα

Δημοσίευση από Banavas » 22 Ιουν 2006 15:57

Μην ελέγχεις αν έχει ορισθεί η POST αλλά στη φόρμα που στέλνει το string της αναζήτησης πρόσθεσε και ένα &search=1
Κάνε έλεγχο αν η $search έχει τιμή 1 για να εκτελεί την αναζήτηση και πρόσθεσε το &search=1 και στο <a href ..... > στα buttons prev - next.
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Υποσελιδα με POST....προβλημα

Δημοσίευση από oikonomou » 22 Ιουν 2006 17:42

Δεν το επιασα φιλε, ειμαι και αρχαριος στην PHP.
Μην ελέγχεις αν έχει ορισθεί η POST αλλά στη φόρμα που στέλνει το string της αναζήτησης πρόσθεσε και ένα &search=1
Κάνε έλεγχο αν η $search έχει τιμή 1 για να εκτελεί την αναζήτηση και πρόσθεσε το &search=1 και στο <a href ..... > στα buttons prev - next.
Ενταξει να μην κανω ελεγχο αλλα στην φορμα που στελνω με POST πως θα βαλω &search=1; Με GET πανευκολο αλλα σε POST;

Ουτε το απο κατω το καταλαβα. Μπορεις λιγο πιο περιγραφικα;

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Υποσελιδα με POST....προβλημα

Δημοσίευση από Banavas » 22 Ιουν 2006 19:30

Απλά σου τα είπα.

Αντί να ελέγχεις αν ορίστηκε η μεταβλητή ελέγχεις μία σημαία (flag) εστω το όνομα αυτής search. Όταν ο χρήστης πατάει αναζήτηση ορίζεις τη σημαία =1.
με κάτι σαν αυτό:
<form name=\"form1\" method=\"post\" action=\"search.php?string=otiedoseoxrhsths&search=1\" >

Το $string=otiedoseoxrhsths και το $search=1 θα σταλούν στο αρχείο search.php (στο αρχείο από όπου ξεκίνησαν). Εκεί αρχή αρχή θα βάλεις

if ($search=1) {

Αποτελέσματα της αναζήτησης για $string

$prev = " <a href=\"$self?search=1&page=$page\">Προηγούμενη</a> ";

$next = " <a href=\"$self?search=1&page=$page\">Επόμενη</a> ";

}else {

φόρμα για αναζήτηση

}


Όσο κινείσαι με τα προηγουμενη - επομενη ή search θα παραμένει =1 και θα σου εμφανίζει τις σελίδες, όταν φύγεις από τη σελίδα και μηδενίσει η $search τοτε θα εμφανίζει τη φόρμα.
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
shadow
Script Master
Δημοσιεύσεις: 606
Εγγραφή: 14 Απρ 2005 18:30

Υποσελιδα με POST....προβλημα

Δημοσίευση από shadow » 22 Ιουν 2006 20:54

Μπορείς να κανεις το παρακάτω

Κώδικας: Επιλογή όλων

$cat&#41; = isset&#40;$_POST&#91;'cat'&#93;&#41; ? $_POST&#91;'cat'&#93; &#58; isset&#40;$_GET&#91;'cat'&#93;&#41; ?$_GET&#91;'cat'&#93; &#58; 0;
if&#40;$cat&#41;&#123;
//o kodikas sou edo kai se ola ta href tou pager tha kolliseis kai to $cat
$nav .= " <a href=\"$self?page=$page&cat=$cat\">$page</a> ";
<?
&#125;else&#123;
//h forma sou edw
&#125;
Close your eyes
For your eyes will only tell the truth and the truth isnt what you want to see
In the dark, is it easy to pretend that the truth is it ought to be.
Programmers are programmers because they like to code

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Υποσελιδα με POST....προβλημα

Δημοσίευση από oikonomou » 22 Ιουν 2006 21:20

Banabas:
μου ειπες

Κώδικας: Επιλογή όλων

<form name=\"form1\" method=\"post\" action=\"search.php?string=otiedoseoxrhsths&search=1\" > 
Εδω οι μεταβλητες otiedoseoxrhsths και search παιρνανε ως POST η ως GET;
Γιατι δεν θελω να εμφανιζετε αυτο που δινει ο χρηστης.
Τα αλλα τα καταλαβα τωρα.

Shadow:

Κώδικας: Επιλογή όλων

$cat&#41; = isset&#40;$_POST&#91;'cat'&#93;&#41; ? $_POST&#91;'cat'&#93; &#58; isset&#40;$_GET&#91;'cat'&#93;&#41; ?$_GET&#91;'cat'&#93; &#58; 0; 
Αυτο θα δουλεψει; Θα δοκιμασω σπιτι αν και 1η φορα το βλεπω.

Ευχαριστω και τους 2. Θα τα δοκιμασω σε λιγο.

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Υποσελιδα με POST....προβλημα

Δημοσίευση από Banavas » 22 Ιουν 2006 23:04

Mε την ποστ δεν εμφανίζεται τίποτα στο χρήστη. Γιαυτό την χρησιμοποιώ κατα κόρον.
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Υποσελιδα με POST....προβλημα

Δημοσίευση από oikonomou » 22 Ιουν 2006 23:57

Το γραφω γιατι το ?string=...
μου θυμιζει GET.

Βασικα κατι αλλο που μου ηρθε τωρα...αν εκανα ελεγχο
if (isset($_POST["$string"])) {...1...}
elseif (isset($_GET["$page"])) {...2...}
else {..3.}
οποτε οταν χτυπαω την σελιδα πρωτη φορα να βγαινει η φορμα (3)
οταν βαζω κατι στην φορμα και παταω ΟΚ δουλευει η ΠΟΣΤ (1)
και οταν παω απο την μια σελιδα στην αλλη η ΓΚΕΤ (2).

Βεβαια οταν η μεταβλητη result εχει τα ολα αποτελεσματα και παω στην επομενη σελιδα η μεταβλητη αυτη χανεται η οχι τελικα;

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Υποσελιδα με POST....προβλημα

Δημοσίευση από Banavas » 23 Ιουν 2006 08:25

Όταν αλλάζεις σελίδα οι μεταβλητές χάνονονται εκτός αν τις μεταφέρεις. Βάζοντας την τιμή της μεταβλητής μέσα στα href αλλαγής σελίδων ουσιαστικά μεταφέρεις τις τιμές της μεταβλητής στην επόμενη σελίδα.
Διάβασε για την εμβέλεια των μεταβλητών γιατί δεν μπορώ να σου περιγράψω εδώ όλες τις περιπτώσεις. Υπάρχει σχετικό tutorial εδό στο FS.
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Υποσελιδα με POST....προβλημα

Δημοσίευση από cherouvim » 23 Ιουν 2006 08:33

Banavas έγραψε:Mε την ποστ δεν εμφανίζεται τίποτα στο χρήστη. Γιαυτό την χρησιμοποιώ κατα κόρον.
Analogos ti periptosi. Diavase afta:
http://www.w3.org/TR/webarch/
http://www.w3.org/2001/tag/doc/whenToUseGet.html

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Υποσελιδα με POST....προβλημα

Δημοσίευση από Rapid-eraser » 23 Ιουν 2006 19:59

Afto pou mporeis va kaveis eivai va kataxoriseis to search string px se eva pivaka kai sta link avaforas va pervas to id avti to idio to string...

Av dev 8es va mplekseis database iparxouv kai ta flatfile.
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

panosru
WebDev Moderator
Δημοσιεύσεις: 1885
Εγγραφή: 13 Σεπ 2005 16:13
Τοποθεσία: Camp

Υποσελιδα με POST....προβλημα

Δημοσίευση από panosru » 23 Ιουν 2006 22:45

Rapid-eraser έγραψε:Afto pou mporeis va kaveis eivai va kataxoriseis to search string px se eva pivaka kai sta link avaforas va pervas to id avti to idio to string...

Av dev 8es va mplekseis database iparxouv kai ta flatfile.
xaxaxa re rapid pos kai den efrikses me tosa echo? :kaloe: :kaloe:

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Υποσελιδα με POST....προβλημα

Δημοσίευση από Rapid-eraser » 24 Ιουν 2006 04:01

Apla dev koitaksa to source ka8olou :P
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Υποσελιδα με POST....προβλημα

Δημοσίευση από oikonomou » 28 Ιουν 2006 16:44

Τελικα ουτε αυτο Banavas δουλεψε...ουτε της Shadow.
Το ολο προβλημα ηταν να μεταφερω την κατηγορια απο σελιδα σε σελιδα οχι τον ελεγχο.
Εκανα αντι για απλο λινκ μια φορμα με ενα κουμπι Επομενο, προηγουμενο κτλ
και απο εκει εστελνα με hidden πεδια την κατηγορια και τον αριθμο της σελιδας. Δηλαδη

Κώδικας: Επιλογή όλων

$prev  = "<form id=form3 name=form3 method=post action=catsearch.php>
	<input type=hidden name=cat value=$cat1><input type=hidden name=page value=$page>
	<input type=submit  value=Προηγούμενη class=button /></form>";
τωρα εχω μονο ενα μικρο προβληματακι παρουσιασης που θα το λυσω σε αλλη κατηγορια.


Ευχαριστω παιδια.

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Υποσελιδα με POST....προβλημα

Δημοσίευση από Banavas » 28 Ιουν 2006 18:47

Για δοκίμασε αυτό

Κώδικας: Επιλογή όλων

$prev  = "<a href=\"catsearch.php?cat=".$cat1."&page=".$page."\">Προηγούμενη</a>";
στη θέση αυτού που έστειλες.
Happy coding....
Μάρκος
http://lasernet.gr

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες