Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    340

    Sintassi in ajax quale tipo di chiamata?

    Salve, cercavo delle risposte sulla rete ma probabilmente non pongo la giusta domanda.
    Vorrei capire quale tipo di chiamata posso fare con ajax.
    Mi spiego nel dettaglio, è noto che in uno script php posso tramite ajax eseguire un'altro script passando dei parametri e ricevendo la risposta.
    Sto cercando di utilizzare uno script di sole funzioni e devo eseguire una chiamata da ajax ad una funzione specifica.
    Due righe di codice si spiegano meglio.
    Ho uno script che contiene il nome di alcuni agenti elencati in una select e selezionando uno di questi deve chiamare la funzione contenuta dentro lo script.
    questo è il metodo classico dove richiamo uno script ma io devo limitarmi alla funzione getAgente().
    codice:
    (document).ready(function(){
     
        $('#agentenome').change(function() { 
                    
                            $id =  $('#agentenome').val();  
                            $('#id_agente').val();
                            $('#agente').val();
                            $('#agenteindirizzo').val();
                            $('#agenteemail').val();
                            $('#agentelocalita').val();
                            $('#agentetelefono').val();
    
                        $.ajax({
                            type : 'POST',
                            url: "<?php 'controller/estrai_agente.php');?>",
                            data: "id="+ $id ,
                            success : function (result) {
      
     
                            data = result.split(",");
                                    id  =  data[0];
                                    nome = data[1];
                                    cognome = data[2];
                                    $('#id_agente').val(id);
                                    $('#agente').val(nome+ ' ' + cognome);
                                    $('#agenteindirizzo').val( data[3]);
                                    $('#agenteemail').val( data[4] );
                                    $('#agentelocalita').val( data[5]);
                                    $('#agentetelefono').val( data[6]);
                             },
                              error : function(msg) {
                                 alert("E' evvenuto un errore. Il stato della chiamata: "+msg);
                                 $("#errore").html(msg);
                            }
                        });
                });
    });
    la funzione interessata è la seguente
    Codice PHP:
    function getAgente(){
             
            
    $mysqli $GLOBALS['mysqli'];
            
    $records = [];
            
            
    $sql =  "SELECT * FROM agenti WHERE id='$id";
     
            
    $result $mysqli->query($sql);
            
            if(
    $result && $result->num_rows){
                while (  
    $row =  $result->fetch_assoc()  ) {

                foreach (
    $result as $key) {
                    
    $data =  $key['id']. ",".$key['nome']. "," 
                            
    .$key['cognome']. "," .$key['indirizzo']."," 
                            
    .$key['email']."," .$key['localita'].",".$key['mobile']; 
                    
                   echo 
    $data ;
                 } 
             } 
    Qualcuno ( Se sono riuscito a spiegarmi) può indicarmi quale istruzione url devo usare ?
    Grazie.

  2. #2
    La parte che ti interessa è
    codice:
    url: "<?php 'controller/estrai_agente.php');?>",
    che però, così come l'hai scritta, è sbagliata. Tutto il codice relativo è infatti javascript e quindi non puoi usare il tag php, perchè js viene interpretato lato client e il client non sa cosa significhi "<? php"...

    Come url dovrai mettere quindi l'indirizzo corretto, assoluto o relativo, del controller.

    Detto questo però il controller, chiamato direttamente in quel modo, non passerà dalle varie inizializzazioni del tuo framework e sarà inutilizzabile. Credo tu debba istruire il tuo framework (cos'è? Sembrerebbe CodeIgniter....) con una rotta e chiamare quindi la url relativa.
    Per esempio costruisci/dichiari la rotta
    Codice PHP:
    $route["ajax/(:any)"] = "ajax_requests/$1"
    e dichiari la url come
    codice:
    url: https://tuo-sito.it/ajax/estrai_agente/getAgente
    Detto questo, il codice della getAgente mi sembra sbagliato...fai un while per recuperare le righe e per ogni riga fai un foreach su una risorsa ($result è una istanza di classe, non un oggetto di tipo countable tipo array)

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    340
    Grazie per la risposta, il codice è evidentemente sbagliato, mi sono accorto dopo, il mio problema era la chiamata alla url.
    Stasera provo il tuo suggerimento, spero funzioni.
    grazie.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.