[PHP] Dubbio valore variabile

paloppa

Utente Attivo
26 Feb 2018
68
0
6
27
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
27
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
27
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.320
88
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
27
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
27
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
27
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.320
88
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
27
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
27
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
L Problemi form Pagina php HTML e CSS 2
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
E Php select option e ajax PHP 23
I Aiuto php Dependent Lookup PHP 0
T arretramento versione PHP... PHP 3
D problema php mysql PHP 1
D problema php mysql PHP 1
E Barra di avanzamento codice PHP PHP 4
G creazione menu a tendina e invio a pagina php PHP 1
A inserire variabile php colore in div html PHP 2
Z Video protetto con PHP PHP 0
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
I Eecuzione di javascript in ciclo foreach php. PHP 7
S Libreria PHP per creare file dwg o dxf PHP 0
A [cerco - retribuito] Sviluppatore Php freelance per progetti vari Offerte e Richieste di Lavoro e/o Collaborazione 2
L Google chart php mysql PHP 2
R Download file multipli da directory php PHP 0
F pagina dinamica PHP PHP 3
P Rimozione automatica url da sitemap.xml con PHP PHP 1
L php tinymce mi duplica la classe label PHP 3
S Errore PHP - Notice: Undefined index ... PHP 14
N file manager da php 5 a 7 PHP 15
M Utilizzare la funzione mysql_num_rows() in PHP 5 PHP 3
elpirata Update dinamico informazioni scritte in una pagina php jQuery 11
N Mysql_result per PHP 7 PHP 2
Emix Select concatenate php sql ajax PHP 2
P Modifica con PHP di un node in una sitemap xml PHP 0
D Come usare funzione php PHP 6
P Cancellazione specifici files in una folder php PHP 1
R Tradurre stringhe con php e google translator PHP 4

Discussioni simili