Pagina 3 di 8 primaprima 1 2 3 4 5 ... ultimoultimo
Visualizzazione dei risultati da 21 a 30 su 73
  1. #21
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,682
    Devi vedere tu da dove vuoi che ti arrivino quei valori, cioè se è necessario passarli in quel modo da client a server o se ti è sufficiente passare solo IDrequest e poi recuperare gli altri valori lato server. Non so come vuoi gestire la cosa ma è chiaro che se usi una cosa come $_GET['quantity'], il server si aspetta che quel dato gli sia passato in GET dal client; se questo non viene trovato allora ci sarà qualche problema, giusto?

    mentre nel php devo fare più condizioni if? Oppure posso fare tutto nello stesso if "if(isset($_GET['IDrequest']))" ?
    Certo, in quel caso puoi usare un'unica condizione in cui verifichi la presenza di quelle variabili, magari usando una serie di operatori AND
    codice:
    if(isset($_GET['IDrequest']) && isset($_GET['quantity']) && isset($_GET['IDprodotti']) && isset($_GET['productQuantity'])){
      // operazioni da compiere
      echo "L'approvazione è andata a buon fine";
    } else {
      echo "Errore: mancano dei dati per completare l'operazione!"
    }
    oppure puoi fare una serie di singole verifiche, una per ogni variabile, e uscire restituendo un messaggio di errore se manca qualche variabile, in modo da avere una gestione più precisa degli errori.
    Una cosa di questo tipo:
    codice:
    isset($_GET['IDrequest']) or exit("Richiesto valore IDrequest");
    //
    // Operazioni del caso
    //
    isset($_GET['quantity']) or exit("Richiesto valore quantity");
    //
    // Altre operazioni
    //
    isset($_GET['IDprodotti']) or exit("Richiesto valore IDprodotti");
    //
    // ecc..
    o qualsiasi altra forma di impostazione dello script a seconda di come vuoi organizzare il tutto; ma questo devi vederlo tu.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  2. #22
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,655
    .

  3. #23
    Ho utilizzato gli AND come da te suggerito:

    if(isset($_GET['IDrequest']) && isset($_GET['quantity']) && isset($_GET['IDprodotti']) && isset($_GET['productQuantity'])){
    $idtemp=$_GET['IDrequest'];
    $risultati_mysql = mysqli_query($connessione,"select quantity,IDprodotti from acquisti where IDrequest = '$idtemp' ");
    $quantityTemp = $_GET['quantity'];
    $prodottiTemp = $_GET['IDprodotti'];
    $risultati_mysql = mysqli_query($connessione,"select productQuantity from prodotti where IDprodotti = '$prodottiTemp");
    $productQuantityTemp = $_GET['productQuantity'];
    $diff = $productQuantityTemp - $quantityTemp;

    if($productQuantityTemp >= $quantityTemp){
    mysqli_query($connessione,"update prodotti set productQuantity = '$diff' where IDprodotti = '$prodottiTemp'");
    mysqli_query($connessione,"delete from acquisti where IDrequest ='$idtemp'");
    echo "Richiesta Approvata";
    }
    }



    lato client ho utilizzato il codice che ti ho postato nel messaggio precedente

    codice:

    function mi(idRichiesta,quantityReq,idProdotti,quantityProd ){
    $.ajax({
    type: "GET",
    url: 'approva.php',
    data: {IDrequest: idRichiesta,
    quantity: quantityReq,
    IDprodotti: idProdotti,
    productQuantity: quantityProd},
    success: function(rispostaServer){
    alert(rispostaServer);
    }
    });
    }


    solo che non appena clicco il bottone nell'alert non mostra nulla tutto bianco

  4. #24
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,682
    solo che non appena clicco il bottone nell'alert non mostra nulla tutto bianco
    Dal solo codice da te postato non è possibile capire dove sia il problema.
    La parte JavaScript dovrebbe andare bene; bisogna vedere cosa avviene nel tuo PHP oltre ciò che hai indicato nel tuo ultimo post.

    Se nell'alert non ricevi nulla, significa che il server non sta restituendo nulla. Controlla intanto se le condizioni vengono verificate, ad esempio puoi mettere dei relativi else in cui restituire qualcosa con un echo; poi verifica se nel PHP ricevi degli errori, mi chiedo se quelle chiamate al db stiano funzionando (ad es. non vedo dove stai inizializzando la variabile "$connessione").
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #25
    Ti posto il codice con la variabile connessione, inoltre ho aggiunto degli else per vedere cosa mi stampava l'alert

    codice:

    $connessione = mysqli_connect($db_host,$db_user,$db_pass,$db_name );


    if(mysqli_connect_errno()){
    exit('connessione fallita' . mysqli_connect_error);
    }


    if(isset($_GET['IDrequest']) && isset($_GET['quantity']) && isset($_GET['IDprodotti']) && isset($_GET['productQuantity'])){
    $idtemp=$_GET['IDrequest'];
    $risultati_mysql = mysqli_query($connessione,"select quantity,IDprodotti from acquisti where IDrequest = '$idtemp' ");
    $quantityTemp = $_GET['quantity'];
    $prodottiTemp = $_GET['IDprodotti'];
    $risultati_mysql = mysqli_query($connessione,"select productQuantity from prodotti where IDprodotti = '$prodottiTemp");
    $productQuantityTemp = $_GET['productQuantity'];
    $diff = $productQuantityTemp - $quantityTemp;

    if($productQuantityTemp >= $quantityTemp){
    mysqli_query($connessione,"update prodotti set productQuantity = '$diff' where IDprodotti = '$prodottiTemp'");
    mysqli_query($connessione,"delete from acquisti where IDrequest ='$idtemp'");
    echo "Richiesta Approvata";
    } else{
    echo "richiesta non approvata";
    }
    }else{ echo "non funziona";}

    l'alert mi stampa "non funziona"

    non appena tolgo i vari isset() dentro l'if lasciando solo isset($_GET['IDrequest']); funziona però svolgendo una sola operazione ovvero la prima query

  6. #26
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,682
    OK, quantomeno sappiamo che c'è un problema in quella condizione. Sembra che non venga digerito quel passaggio multiplo di parametri in GET dalla chiamata AJAX. Prova a fare un exit all'inizio dello script o prima di quella condizione, restituendo il solo valore di $_GET['IDrequest']:
    Codice PHP:
    exit("IDrequest: " $_GET['IDrequest']); 
    Vedi cosa salta fuori; non vorrei che gli altri parametri, per qualche ragione, vengano erroneamente concatenati al valore di questo primo parametro, o chissà cosa.

    In qualunque caso si potrebbe pensare di usare il passaggio in POST; eventualmente prova ad impostare type:"POST" nella chiamata AJAX; a quel punto puoi recuperare i valori in PHP attraverso la super globale $_POST[] (anziché $_GET[]).

    Prova inoltre ad aggiungere dataType:"json" tra gli attributi dell'oggetto AJAX (così come avevi fatto nel tuo script iniziale).

    Ancora, puoi usare la funzione isset() con passaggio di più argomenti in modo da avere una forma più contratta rispetto alla sintassi vista precedentemente con l'uso degli AND; ha comunque lo stesso identico effetto:
    Codice PHP:
    if(isset($_POST['IDrequest'], $_POST['quantity'], $_POST['IDprodotti'], $_POST['productQuantity'])) 
    Fai sapere.
    Ultima modifica di KillerWorm; 18-11-2020 a 00:15
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  7. #27
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,655
    @_th3answer
    ricorda che sei tenuto, come tutti noi, ad utilizzare il tag CODE per postare codice sul forum.
    vedi tasto #

    buon lavoro

  8. #28
    Salve, chiedo scusa per non aver utilizzato il tag CODE. Quando aggiungo nel javascript "dataType: "json"" al click del bottone non succede nulla, non visualizzo neanche l'alert, poi ho fatto le verifiche che mi hai suggerito ho provato ad utilizzare $_POST e a mettere "POST" nel javascript e l'alert mi da sempre "non funziona", ho utilizzato anche la sintassi:

    Codice PHP:
     if(isset($_POST['IDrequest']),isset($_POST['quantity']),isset($_POST['IDprodotti']),isset($_POST['productQuantity'])){ 
            
    //Condizioni

    ma ottengo un errore " syntax error, unexpected ',' ".
    L'unica verifica che non ho fatto è stata quella di utilizzare
    Codice PHP:
     exit ("IDrequest" $_GET['IDrequest'] ); 
    perché non ho ben capito dove devo fare questa operazione

  9. #29
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,682
    al click del bottone non succede nulla
    Ciao, è possibile che ci sia qualche errore JavaScript, in tal caso controlla sempre nella console del browser, F12 per aprirla, quindi vai nella scheda "script" o qualcosa del genere.

    ma ottengo un errore " syntax error, unexpected ',' "
    In quel caso la funzione isset va scritta una sola volta. Controlla bene come ho scritto nel precedente post.

    L'unica verifica che non ho fatto
    Quell'exit puoi metterlo ad inizio script, serve solo per capire cosa arriva al server passando quei parametri in quel modo, poi ovviamente andrà tolto una volta verificato il tutto.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  10. #30
    Ah d'accordo ho sistemato la sintassi con un solo isset() e ancora mi da il problema ("non funziona"), dopodiché ho controllato la console mettendo il dataType: "json" e non mi da alcun errore adesso provo a mettere l'exit nel javascript giusto? E ti faccio sapere

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.