Dati form non riconosciuti mysql

trattorino

Utente Attivo
23 Lug 2016
173
1
18
43
Salve ho creato un modulo di ricerca avanzato che scarica dei dati dalle tabelle e le mette in una pagina con delle pagine ecc, il problema sta nel form che una volta compilato ad esempio, digitando solo foto mi scarica i risultati, ma solo nella prima pagina mi restituisce i dati perfettamente, se clicco sulla pagina 2 non restituisce i valori assegnati dal form mettendomi tutte le opzioni, il form in questione l ho impostato cosi
PHP:
$keyFoto = $_GET['foto'];
if(isset($keyFoto)){
 $CondizioneFoto = "AND pp_thumb_photo LIKE '%$keyFoto%'";
}
<form method='GET' id='FormChattaCon' class='FormBase' action=''>
<div class='ConFoto'>Con Foto: <input id="checkBox"  name="foto" type="checkbox"  onclick="javascript: submitform()" <?php echo $check;?>/> </div>


</form>
richiamato dal fili index.php
il problema che nel file pagina.php non riesco a far iniettare i dati del form quando digito submit
Codice:
<script type="text/javascript">
$(document).ready(function(){
$('.pagination').pagination({
        items: <?php echo $total_records;?>,
        itemsOnPage: <?php echo $limit;?>,
        cssStyle: 'light-theme',
        currentPage : 0,
        onPageClick : function(pageNumber) {
            jQuery("#target-content").html('loading...');
            jQuery("#target-content").load("pagina.php?page=" + pageNumber);
        }
    });
});
</script>
nel file pagina dove assegnare i campi che compilo su
PHP:
$sql = "SELECT * FROM   members INNER JOIN   pfields_content ON   members.member_id =   pfields_content.member_id  $whereSQL $keyRegione $CondizioneEta $CondizioneFoto ORDER BY last_activity DESC LIMIT $start_from, $limit";
domanda
come faccio a inserire i dati del form sul file pagina.php quando viene richiamata sul file index.php?
grazie in anticipo
 
Ciao è difficile da spiegare, ma ci vuole piu a dirlo che a farlo, ho un form situato sulla index.php questo form scarica dei dati su una tabella mysql e me li mette su index.php sotto pagine, 1 2 3 4 5 6 ecc, queste pagine vengono generate sul file pagine.php, il problema sta che se clicco la pagina numero 2, non vengono generati i risultati in base al settaggio del form, perche appunto il form è situato nell'index, forse dovrei usare un ajax in modo che se clicco le varie pagine mi metta sulla pagina pagina.php le variabili contenute su index.php e il relativo form...avete idee?
 
si infatti non so se ho capito bene ma ci provo, da quanto mi descrivi probabilmente non passi la $_GET['foto'] quando clicchi su pagina 2, 3, 4 ecc.. può essere ? Lo scopo è banale e ci sta, sta tutto nel capire come hai organizzato la cosa.
 
uso due file
il primo e index.php
PHP:
<?php
include('db.php');
$keyFoto = $_GET['foto'];


if(isset($keyFoto)){
 $CondizioneFoto = "AND thumb_photo LIKE '%$keyFoto%'";
}


//for total count data
$countSql = "SELECT COUNT(last_activity) FROM members INNER JOIN  pfields_content ON members.member_id = pfields_content.member_id  $whereSQL $keyRegione $CondizioneEta $CondizioneFoto ";
$tot_result = mysqli_query($conn, $countSql);
$row = mysqli_fetch_row($tot_result);
$total_records = $row[0];
$total_pages = ceil($total_records / $limit);

//for first time load data
if (isset($_GET["page"])) { $page  = $_GET["page"]; } else { $page=1; };
$start_from = ($page-1) * $limit;  
$sql = "SELECT * FROM members INNER JOIN  pfields_content ON members.member_id = pfields_content.member_id  $whereSQL $keyRegione $CondizioneEta $CondizioneFoto ORDER BY last_activity DESC LIMIT $start_from, $limit";
$rs_result = mysqli_query($conn, $sql);
?>
<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>


</head>
<body>
<div class="loader">CARICAMENTO...</div>


<div class="BloccoBaseBO">


<div class="container" id="BOcontent">


<!-- Tab panes -->
<div class="tab-content">
  <div role="tabpanel" class="tab-pane active" id="tab1">
<form method='GET' id='FormChattaCon' class='FormBase' action=''>

<div class='ConFoto'>Con Foto: <input id="checkBox"  name="foto" type="checkbox"  onclick="javascript: submitform()" <?php echo $check;?>/> </div>


</form>
<div class='InfoGlobal'>
Scopri gli utenti online adesso, visita il loro profilo, scrivigli e usa i filtri...
</div>

<table class="table table-bordered table-striped">
<tbody id="target-content">


<?php

while ($row = mysqli_fetch_assoc($rs_result)) {


// foto
$photo = $row['photo'];
$IDGruppo = array('29','77','62','83','46','43','73','58','68','2','78','63','82','45','42','71','52','67','27','76','60','81','44','41','70','56','65');

echo '<li class="FotoBloccoB">';
if(empty($photo)) { 
if(in_array($GruppoID, $IDGruppo)) {
echo '<a href="http://www..it/index.php?/profile/' . $MemberId . '-' . $MemberName . '" title="Visualizza il profilo di ' . $MemberName . '" target="_top"><img src="http://www..it/uploads/profile_photos/' . $photo . '" class="imgA" /></a>';
}
}
else{
echo '<a href="http://www..it/index.php?/profile/' . $MemberId . '-' . $MemberName . '" title="Visualizza il profilo di ' . $MemberName . '" target="_top"><img src="http://www..it/uploads/profile_photos/' . $photo . '" class="imgA" /></a>';
}
echo '</li>';




}; 
?>
</tbody>
</table> 
<nav><ul class="pagination">
<?php if(!empty($total_pages)):for($i=0; $i<=$total_pages; $i++):
            if($i == 0):?>
            <li class='active'  id="<?php echo $i;?>"><a href='pagination.php?page=<?php echo $i;?>'><?php echo $i;?></a></li>
            <?php else:?>
            <li id="<?php echo $i;?>"><a href='pagination.php?page=<?php echo $i;?>'><?php echo $i;?></a></li>
        <?php endif;?>
<?php endfor;endif;?>
</ul>
</nav>


</div>







</div></div>
</div>
<script type="text/javascript">
$(document).ready(function(){
$('.pagination').pagination({
        items: <?php echo $total_records;?>, 
        itemsOnPage: <?php echo $limit;?>,
        cssStyle: 'light-theme',
        currentPage : 0,
        onPageClick : function(pageNumber) {
            jQuery("#target-content").html('loading...');
            jQuery("#target-content").load("pagination.php?page=" + pageNumber);
        }
    });
});
</script>
 


</body>
</html>
 
il secondo è questo
Codice:
<?php
include('db.php');

if (isset($_GET["page"])) { $page  = $_GET["page"]; } else { $page=1; };
$start_from = ($page-1) * $limit;

$sql = "SELECT * FROM members INNER JOIN  pfields_content ON members.member_id = pfields_content.member_id  $whereSQL $keyRegione $CondizioneEta $CondizioneFoto ORDER BY last_activity DESC LIMIT $start_from, $limit";
$rs_result = mysqli_query($conn, $sql);
?>

<?php
while ($row = mysqli_fetch_assoc($rs_result)) {

// foto
$photo = $row['pp_main_photo'];
$IDGruppo = array('29','77','62','83','46','43','73','58','68','2','78','63','82','45','42','71','52','67','27','76','60','81','44','41','70','56','65');



};
?>
dove mi rilascia i dati se clicco pag 1 , 2 , 3 ecc
solo che i risultati rilasciati non cambiano in base al form, ad esempio le foto...dove vengono generati solo su index.php
sono bloccato a questa cosa, qualcuno mi aiuta?
 
Ciao mi intrometto.
Ma quando scrivi
questo form scarica dei dati su una tabella mysql
intendi che compilato il form e fatto il submit, esegue una query e restituisce i risultati?

Presumo che ogni riga nel db abbia un suo ID identificativo. Se è cosi una volta estratti i risultati potresti fare una cosa del genere.

Crei un url di questo genere.
Codice:
http://miosito.it/numeroIDidentificativo
ES:
Codice:
http://miosito.it/1
http://miosito.it/2
http://miosito.it/3

crei una pagina resultato.php ed inserisci
PHP:
<?php
$id = $_GET['id'];
echo $id;
//esegui una query con $id e recuperi tutte le informazioni del record specifico
?>

crei un file .htaccess e vai a inserire questo
Codice:
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^([^/\.]+)/?$ resultato.php?id=$1 [L]
</IfModule>


fammi sapere
 
ho semplicemente creato un form con tutti i dati e questo form su index.php mi compila i dati di ricerca in get sul $countSql e $Sql e funziona, solo che il codice
Codice:
<script type="text/javascript">
$(document).ready(function(){
$('.pagination').pagination({
        items: <?php echo $total_records;?>,
        itemsOnPage: <?php echo $limit;?>,
        cssStyle: 'light-theme',
        currentPage : 0,
        onPageClick : function(pageNumber) {
            jQuery("#target-content").html('loading...');
            jQuery("#target-content").load("pagination.php?page=" + pageNumber);
        }
    });
});
</script>
una volta cliccate le varie pagine non riesce a inserire i dati del form sul file pagination.php, il problema è questo =(
 
Ah okey allora dovremmo esserci, il "colpevole" è lui.
Codice:
 jQuery("#target-content").load("pagination.php?page=" + pageNumber);
Alla pagination.php tu giustamente gli passi il numero di pagina da visualizzare (che fungerà immagino da LIMIT per il numero di record), tuttavia devi anche passargli la variabile foto e quindi ti uscirebbe una roba tipo:
Codice:
 jQuery("#target-content").load("pagination.php?page=" + pageNumber + "&foto=" + $_GET["foto"]);
In questo modo la pagination.php non solo riceve la pagina ma anche il dato del form desiderato. Tutto qui ? No.
Nella pagination.php ora devi reperire questo dato e lavorarlo di conseguenza, come nella index.php e quindi in soldoni avresti una roba simile:


Codice:
<?php
include('db.php');

$keyFoto = $_GET['foto'];
if(isset($keyFoto)){
 $CondizioneFoto = "AND pp_thumb_photo LIKE '%$keyFoto%'";
}

if (isset($_GET["page"])) { $page  = $_GET["page"]; } else { $page=1; };
$start_from = ($page-1) * $limit;

$sql = "SELECT * FROM members INNER JOIN  pfields_content ON members.member_id = pfields_content.member_id  $whereSQL $keyRegione $CondizioneEta $CondizioneFoto ORDER BY last_activity DESC LIMIT $start_from, $limit";

while ($row = mysqli_fetch_assoc($rs_result)) {

// foto
$photo = $row['pp_main_photo'];
$IDGruppo = array('29','77','62','83','46','43','73','58','68','2','78','63','82','45','42','71','52','67','27','76','60','81','44','41','70','56','65');



};
?>

In questo modo dovrebbe fare ciò che chiedi, fammi sapere.
 
Ciao antonio grazie della risposta, ho fatto quanto segue ma ora non mi restituisc nessun dato inserisco screen
QOiDI0y.png

mi rimane il load attivo, ho messo il codice come hai detto sia sul file pagination.php che sull'index.php, non ne vuole sapere di uscire con i dati del form
Codice:
<script type="text/javascript">
$(document).ready(function(){
$('.pagination').pagination({
        items: <?php echo $total_records;?>,
        itemsOnPage: <?php echo $limit;?>,
        cssStyle: 'light-theme',
        currentPage : 0,
        onPageClick : function(pageNumber) {
            jQuery("#target-content").html('loading...');
             jQuery("#target-content").load("pagination.php?page=" + pageNumber + "sesso"+$_GET['sesso']+"eta"+$_GET['eta']+"regione"+$_GET['regione']+"&foto=" + $_GET["foto"]);
        }
    });
});
</script>

si il problema sta proprio nel passare i dati del form sulla pagina pagination.php, son fermo a questo punto, hai altre idee? non e che per caso bisogna inserire un campo var con le variabili del form in quello script?
 
Allora hai avuto una disattenzione nella creazione della stringa load, sarebbe:
Codice:
 jQuery("#target-content").load("pagination.php?page=" + pageNumber + "&sesso"+$_GET['sesso']+"&eta="+$_GET['eta']+"&regione="+$_GET['regione']+"&foto=" + $_GET["foto"]);
(mancavano gli uguale e le & commerciali)
 
Codice:
         jQuery("#target-content").load("pagination.php?page=" + pageNumber + "&sesso=" + $_GET['sesso'] + "&eta=" + $_GET['eta'] + "&regione=" + $_GET['regione'] + "&foto=" + $_GET["foto"]);
inserito aggiornato ma restituisce sempre quel load dello screen iniziale =(
ho sbagliato qualcosa?
 
Ok perdonami è stata una mia disattenzione, la formulazione corretta per il metodo load di jquery è la seguente:
Codice:
    $("#target-content").load("pagination.php", {"page": pageNumber, "foto": "<?=$_GET["foto"]?>"});
Come noti è totalmente differente e ti rimando per maggiori info alla documentazione ufficiale http://api.jquery.com/load/.
In sintesi comunque i parametri li passi come ti ho fatto vedere nell'esempio quindi tra doppi apici racchiudi a sinistra il nome del parametro e a destra il valore (separati da i "due punti"). Per aggiungere un successivo valore basta mettere la virgola e continuare.
L'ho provato io stesso e i dati vengono inviati (mentre prima assolutamente no)
 
le ho provate tutte non ne vuole sapere di andare ho inserito questo
Codice:
 jQuery("#target-content").load("pagination.php?", {"page=": pageNumber, "foto=": "<?php $_GET["foto"]; ?>"});
mi scarica rempre il risultato resettato con utenti sia con foto che senza foto
il link del browser è questo
/?foto=on#page-1
mi da i risultati solo all'aggiornamento della pagina poi se clicco i pulsanti sotto mi resetta tutto, che incubo
 
Allora a me funziona tutto ed ecco cosa ho fatto:
  • Nel pagination.php i dati non vanno reperiti con il $_GET ma via $_POST
  • Nel mio scenario ho fatto che il checkbox mi mostrasse solo gli over 60 (che è la stessa cosa delle foto), quindi il mio form è stato identico al tuo e il codice nel pagination.php è stato
    Codice:
    $keyPensionati = $_POST['pensionato'];
    $Condizione1  = "";
    if(isset($keyPensionati)){
     $Condizione1 = " WHERE employee_age > 60";
    }
    
    
    if (isset($_POST["page"])) { $page  = $_POST["page"]; } else { $page=1; }; 
    $start_from = ($page-1) * $limit; 
     
    $sql = "SELECT * FROM employee $Condizione1 ORDER BY id ASC LIMIT $start_from, $limit"; 
    $rs_result = mysqli_query($conn, $sql);

Non ho riscontrato neanche una volta il loading che hai messo in foto, prova a seguire queste dritte e deve andarti per forza (sul mio pc va ed è codice tuo alla fine, solo con queste correzioni fatte:)). Naturalmente è uno scenario semplificato ma è la base di quello che hai scritto a inizio post, non cambia nulla ci sono solo più campi.
 
ma nel tuo caso il form lo fai partire dall'index? se si, mi puoi passare lo script finale, cosi vedo cosa ho sbagliato, grazie mille
 
Assolutamente si, ecco a te la index.php
Codice:
<?php
include('db.php');

$keyMinorenni = $_GET['pensionato'];
$Condizione1  = "";
if(isset($keyMinorenni)){
 $Condizione1 = " WHERE employee_age > 60";
}

//for total count data
$countSql = "SELECT COUNT(id) FROM employee $Condizione1"; 
$tot_result = mysqli_query($conn, $countSql);   
$row = mysqli_fetch_row($tot_result); 
$total_records = $row[0]; 
$total_pages = ceil($total_records / $limit);

//for first time load data
if (isset($_GET["page"])) { $page  = $_GET["page"]; } else { $page=1; }; 
$start_from = ($page-1) * $limit; 
$sql = "SELECT * FROM employee $Condizione1 ORDER BY id ASC LIMIT $start_from, $limit"; 
$rs_result = mysqli_query($conn, $sql);
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css">
<script type="text/javascript" charset="utf8" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.3.js"></script>
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="dist/simplePagination.css" />
<script src="dist/jquery.simplePagination.js"></script>
<title></title>
<script>
</script>
</head>
<body>
<div class="container" style="padding-top:20px;">

<form method='GET' id='FormChattaCon' class='FormBase' action='index.php'>
<div class='ConFoto'>Mostra solo gli over 60: <input id="checkBox"  name="pensionato" type="checkbox"  onclick="javascript: form.submit()" <?php echo $check;?>/> </div>
</form>

<table class="table table-bordered table-striped"> 
<thead> 
<tr> 
<th>Name</th> 
<th>Salary</th>
<th>Age</th> 
</tr> 
</thead> 
<tbody id="target-content">
<?php 
while ($row = mysqli_fetch_assoc($rs_result)) {
?> 
            <tr> 
            <td><?php echo $row["employee_name"]; ?></td> 
            <td><?php echo $row["employee_salary"]; ?></td> 
            <td><?php echo $row["employee_age"]; ?></td> 
            </tr> 
<?php 
}; 
?>
</tbody>
</table>
<nav><ul class="pagination">
<?php if(!empty($total_pages)):for($i=1; $i<=$total_pages; $i++): 
            if($i == 1):?>
            <li class='active'  id="<?php echo $i;?>"><a href='pagination.php?page=<?php echo $i;?>'><?php echo $i;?></a></li>
            <?php else:?>
            <li id="<?php echo $i;?>"><a href='pagination.php?page=<?php echo $i;?>'><?php echo $i;?></a></li>
        <?php endif;?>         
<?php endfor;endif;?>
</ul></nav>
</div>
</body>
<script type="text/javascript">
$(document).ready(function(){
$('.pagination').pagination({
        items: <?php echo $total_records;?>,
        itemsOnPage: <?php echo $limit;?>,
        cssStyle: 'light-theme',
        currentPage : 1,
        onPageClick : function(pageNumber) {
            jQuery("#target-content").html('loading...');
            jQuery("#target-content").load("pagination.php", {"page":pageNumber, "pensionato": "<?=$_GET['pensionato']?>"});
        }
    });
});
</script>

Attenzione che mi mancava la funzione dell'onsubmit quando cliccavi sul checkbox, allora l'ho fatto diventare un semplice form normale tramite il form.submit(). Come se non ci fosse l'onclick insomma
 

Discussioni simili