[PHP] Dubbio valore variabile

paloppa

Utente Attivo
26 Feb 2018
68
0
6
28
Salve a tutti, ho un dubbio su l'assegnamento di una variabile.
Nello specifico , sto usando uno script di jquery ui che una volta che l'utente seleziona una determinata data, appare una finestra con tutte le offerte disponibili.

Quindi facendo un esempio:
l'utente entra nel sito , compila i campi nome , cognome, email, oggetto, data di arrivo e data di partenza. Una volta che entrambe le date sono state inserite dall'utente, faccio una query , cercando le offerte che sono prenotabili in quel range di date, e le stampo a video , cosi che l'utente può decidere quella che piu' gli aggrada.

Ora, il mio dubbio è il seguente: perchè se provo a stampare $_POST['data_arrivo'] non mi stampa niente? Considerando che data_arrivo è il nome del campo della data di arrivo che inserisce l'utente, devo per forza inviare il form affinche $_POST['data_arrivo'] venga memorizzata?
 

paloppa

Utente Attivo
26 Feb 2018
68
0
6
28
allora non la stai passando!
Può essere perchè non ho chiuso il form, e sto facendo tutto prima che si chiuda il form?

Qui il codice


PHP:
//dichiaro il campo per la data di arrivo
<div style="float:left; width:100%; height:100%;">
             <span style="padding-top: 17px; padding-left:7px; display:block; float:left; width:40%; height:10%;">Selezionare Data di arrivo</span>
             <p><input style="display:block; float:left; width:60%; height:10%;" type="text" name="data_arrivo" id="data_arrivo" required></p>
         </div>
       //dichiaro campo per data di partenza
  <div style="float:left; width:100%; height:100%;">
             <p><span style="padding-top: 17px; padding-left:7px; display:block; float:left; width:40%; height:10%; ">Selezionare Data di partenza</span></p>
             <p><input style="display:block; float:left; width:60%; height:10%;" type="text" name="data_partenza" id="data_partenza" required></p>
         </div>
         //div che appare non appena le date sono state selezionate dall'utente
<div class="hidden show_div">
         <p style= "text-align:center; font-weight:bold;">Offerte Disponibili nel periodo da Lei selezionato : </p>
             <?php
//mi collego al DB per prendere la data scritta dall'utente e verificare quali offerte sono disponibili nel range
                print_r ($_POST);
                $connessione=mysqli_connect("localhost","root","","lavoro") or die ("Impossibile connettersi");
                $query_offerte="SELECT post_id from rlnz_postmeta where meta_key='inizio'";
                ?>
                <div style="text-align:center; font-weight:bold;">
                    
                <?php
                $i=0;
                $res=mysqli_query($connessione,$query_offerte);
                 while($row = mysqli_fetch_array($res)){
                    
                 print $row['post_id'];?><input type="radio" name="offerta" value="valore<?php $i;?>"/>
                    <?php
                     $i++;
                     print "<br/>";
                 }
            
            
             ?>
             </div>
 

paloppa

Utente Attivo
26 Feb 2018
68
0
6
28
Ho letto che per andare a fare un lavoro del genere, è consigliabile andare a utilizzare la funzione $get di ajax , prendere il valore dal javascript e passarla al php.

Nello specifico , dato che nel campo data_arrivo della form , il campo è di tipo text , con richiamo del datapicker, posso scrivere nel js una chiamata a quella variabile e passarla lato php.

Se non ho detto alcuna cavolata sopra, opterei per questa strada.

Sto cercando i giusti parametri da passare alla funzione $get ma non ho trovato niente. Qualcuno potrebbe fornirmi delle guide o delle spiegazioni in merito a questa funzione?

Grazie a tutti
 

macus_adi

Utente Attivo
5 Dic 2017
1.333
91
48
IT/SW
Ho letto che per andare a fare un lavoro del genere, è consigliabile andare a utilizzare la funzione $get di ajax , prendere il valore dal javascript e passarla al php.
Certo, ma come sai forse è consigliabile scrivere in modo non-intrusive il codice... Riguarderei un pò il tutto per amalgamare le discrepanze tra codice e BL, e rendere il codice più gestibile... Poi fai tu...
 

paloppa

Utente Attivo
26 Feb 2018
68
0
6
28
Aggiornando la situazione. Mi trovo davanti questo JS (penso sia corretta la parte JS)
PHP:
$(function(){

    var self=this;
    var data_arrivo = $('#data_arrivo');
    var data_partenza = $('#data_partenza');
     self.check_next=[0,0];
    data_arrivo.datepicker({
        minDate:0,
        dateFormat: "dd/mm/yy",
        onSelect: function (selectedDate) {
                    var depart = jQuery.datepicker.parseDate('dd/mm/yy', selectedDate);
                    depart.setDate(depart.getDate() + 1);
                    data_partenza.datepicker("option", "minDate", depart);
        setTimeout(function(){
            data_partenza.datepicker('show');
        }, 16);
             self.check_next[0]=1;
        if(check_div(self.check_next))load_date_picker();
                }
            });
  
    data_partenza.datepicker({   
        minDate:0,
        dateFormat: "dd/mm/yy",
        onSelect:function(selectedDate){
              self.check_next[1]=1;
        if(check_div(self.check_next))load_date_picker();
            leggi_dati(data_arrivo.val(),data_partenza.val());
          
        }
        });
});
function check_div(ar){
    if(ar[0] && ar[1])return true;
    else return false;
}

function load_date_picker(){
    $('.show_div').removeClass('hidden');
}

function leggi_dati(arrivo,partenza){
        $.ajax({
            url: 'http://localhost/lavoro/57-2/',
            method: 'POST',
            data: {
                data_arrivo: arrivo,
                data_partenza: partenza
            },
            success:function(data){
                console.log(data);
            }
        });
    }

Adesso vorrei richiamare le due date. Soltanto che con $_POST non va.
Che passaggio mi manca?

@Max 1
 
Ultima modifica:

paloppa

Utente Attivo
26 Feb 2018
68
0
6
28
Allora ho letto un paio di esempi su json compresa la teoria che sta dietro.
Mi sono imbattuto inoltre in un esempio che secondo me fa al caso mio.

Qui c'è l'esempio (sperando si possa mettere il link. Se non si può mettere il link chiedo gia scusa anticipatamente)
https://www.codexworld.com/post-get-json-data-from-php-script-jquery-ajax/


Ora io ho fatto qualcosa di simile.
Nello specifico ho creato nel file JS una funzione dove utilizzo il metodo $.ajax
PHP:
function leggi_dati(){
    var data_arrivo = $('#data_arrivo').val();
    $.ajax({
            type: 'POST',
            url: 'test-page-template.php',
            dataType : "json",
            data: {
                data_arrivo: data_arrivo},
            success:function(data){
               
            }
        });
}

Sul PHP invece ho fatto un esempio di stampa , ma ovviamente il $_POST['data_arrivo'] non mi stampa niente.

Vorrei capire perchè per favore.
Lui nel suo esempio utilizza $_POST['user_id']nella query , quindi se dovesse fare un print di quella variabile gli stamperà chiaramente il valore inserito dall'utente nel campo. Perchè a me invece non funziona??
 

paloppa

Utente Attivo
26 Feb 2018
68
0
6
28
Allora ho letto un paio di guide in giro e tutte le mie idee precedenti sulla funzione $.ajax di jquery sono state confermate.

Adesso però penso di essere a un piccolo passo dalla soluzione finale, ma rileggendo più volte il codice , non riesco a capire cosa stia sbagliando.

Ho inserito la mia $.ajax dentro una funzione, che ho deciso di richiamare una volta che vado a mostrare un div. Nello specifico ho questo

PHP:
function load_date_picker(){
    $('.show_div').removeClass('hidden');
    leggi_dati();
    }

function leggi_dati(){
    var data_arrivo = $('#data_arrivo').val();
    $.ajax({
            type: 'POST',
            url: '/lavoro/wp-content/themes/rolenzo/page-templates/test-page-template.php',
            dataType : "json",
            data:{
                data_arrivo:data_arrivo
                },
            success:function(data){
                console.log("Done");
            }
        });
}


Nel PHP invece ho questo codice
PHP:
 <div class="hidden show_div">
         <p style= "text-align:center; font-weight:bold;">Offerte Disponibili nel periodo da Lei selezionato : </p>
             <?php
                $date=$_POST['data_arrivo'];
             $query1="SELECT * FROM messaggio where data_arrivo>='".$date."'" ;
                $result1=mysqli_query($connessione,$query1);
                $row=mysql_fetch_array($result1);
             // for first row only and suppose table having data
                echo json_encode($row);  // pass array in json_encode
            
            
             ?>
             </div>

Cosa sbaglio?
 

macus_adi

Utente Attivo
5 Dic 2017
1.333
91
48
IT/SW
Sbagli quello dell'altra volta.... Stai chiamando in ajax, la risposta dovrebbe essere un JSON/XML, no un mix...
Flusso....
ACTION-> AJAX -> CALL FUNCTION -> ELAB -> RESPONSE -> PARSE RESPONSE -> RENDERING
Mi pare tu abbia messo Iil rendering in posizione "ELAB"... mancano 4 passaggi per standardizzare il flusso!
 

paloppa

Utente Attivo
26 Feb 2018
68
0
6
28
Sbagli quello dell'altra volta.... Stai chiamando in ajax, la risposta dovrebbe essere un JSON/XML, no un mix...
Flusso....
ACTION-> AJAX -> CALL FUNCTION -> ELAB -> RESPONSE -> PARSE RESPONSE -> RENDERING
Mi pare tu abbia messo Iil rendering in posizione "ELAB"... mancano 4 passaggi per standardizzare il flusso!

Dove potrei leggere delle informazioni riguardante il flusso? Io pensavo dovessi semplicemente richiamare json encode
 

paloppa

Utente Attivo
26 Feb 2018
68
0
6
28
Mi funziona adesso perchè l'errore mio è stato quello di scrivere mysql_result e non mysqli_result.

Il problema però è sempre questa diavolo di data che non viene riconosciuta!!

$date=$_POST['data_arrivo'];

Codice:
$date=$_POST['data_arrivo'];
              
              print "<br/>";
                $query1="SELECT distinct post_title FROM rlnz_posts JOIN rlnz_postmeta on post_parent=post_id where meta_key='inizio' and meta_value<='".$date."'" ;
                $result1=mysqli_query($connessione,$query1);
                while($row=mysqli_fetch_array($result1)){
             // for first row only and suppose table having data
                 echo json_encode($row['post_title']);// pass array in json_encode
                }
}
 
Discussioni simili
Autore Titolo Forum Risposte Data
M [PHP] Dubbio controllo IF PHP 15
paloppa [PHP] Dubbio print variabile PHP 27
paloppa [PHP] Invio mail da form dubbio PHP 17
asevenx [PHP] Dubbio teorico sui metodi e costruttore OOP PHP 1
otto9due [PHP] Dubbio esistenzaile: Regex email e stampa valori trovati.. PHP 5
D Dubbio per creare un sito in php PHP 9
neo996sps Dubbio su PHP e scrittura query PHP 2
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
P Data scraping in PHP non funziona PHP 4
C Calcoli matematici in php PHP 5
F Scrivere dei dati in word con php PHP 0
D PHP leggere cartella di Windows PHP 0
I dominio aruba versione php server linux Domini 3
G Colorare menu select attraverso ricerca php PHP 0
L PHP motore di ricerca nel sito PHP 1
S PHP e Mysqli PHP 0
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
M Visulizzare immagine con php PHP 8
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
G leggere file txt e stampare con php il contenuto a video PHP 7
F Ricreare struttura php+mysql su Xampp Apache 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Array associativi php su 2 campi mysql PHP 10
G Invio form con PHP PHP 3
T fatture con voci fattura in php PHP 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
M Collegamento tra form html e script php PHP 4
M Problemi con la stampa dei valori in php PHP 1
W [Cerco collaborazioni] Sviluppatore Web (PHP) Offerte e Richieste di Lavoro e/o Collaborazione 1
D passare valori da database sql a php PHP 1
L Ricezione dei dati su file php da modulo html PHP 6
E Inviare variabile a PHP da ciclo in JS Javascript 0
A form PHP prenotazione tramite query PHP 2
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1
F menù select dinamico da db in php PHP 3
L Problemi form Pagina php HTML e CSS 3
L php mysql non salva solo id PHP 21
L php mysql cerca e visualizza pagina PHP 0
F Il codice php è giusto? PHP 2
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
A invio massivo dati a file php Javascript 4
Z MySql injection PHP PHP 1
V PHP form intersecate PHP 0
I [Offro][Retribuito] Programmatore Php Offerte e Richieste di Lavoro e/o Collaborazione 0
P Funzione jQuery Ajax invio file a php jQuery 1
C Dopo chiusura del tag php la stringa html va a capo PHP 1
E Transaction php PHP 11
B ciclare file xml con PHP PHP 1
L Estrazione dati php Database 6
A Aiuto per pagina php PHP 0

Discussioni simili