[PHP] Dubbio valore variabile

paloppa

Utente Attivo
26 Feb 2018
68
0
6
30
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
30
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
30
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.343
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
30
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
30
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
30
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.343
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
30
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
30
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
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0
E PHP & jQuery PHP 8
N Passare array da php a javascript PHP 5
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
F Php e fatturazione elettronica PHP 0
P lanciare script asp (o php) da jquery Javascript 1
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 1
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

Discussioni simili