Problema ajax

  • Creatore Discussione Creatore Discussione akp
  • Data di inizio Data di inizio

akp

Utente Attivo
8 Giu 2015
133
0
16
Salve,ho un problema con ajax,devo inviare dei dati al dbms da una pagina php.

HTML:
<form id="ARajax" enctype='multipart/form-data'  method='POST'>
     <input type="hidden" id="UID" name="utente" value="<?=$row['id_m']?>"/>
     <input type="submit" class="button tiny" name="ar" value="Accetta"/>
     <input type="submit" class="button tiny" name="ar" value="Rifiuta"/>
 </form>

Codice:
$("input[name='ar']").click(function(event){

  var ar = $("input[name='ar']").val();
  var utente = $("#UID").val();

  $.ajax({
    type: "POST",
    url: "Grichieste.php",
    data: "ar = " + ar + "&utente = " + utente,
    dataType: "html",
    success: function(data){
              $('.wee').html();
            },
    error: function(){
            alert("Chiamata fallita!!!");
           }

  });
});

PHP:
if(isset($_POST['utente'])){
 $utente = $_POST['utente'];
}

if(isset($_POST['ar'])){
 $ar = $_POST['ar'];
}

//qua faccio la query con i valori passati

Il problema è che non mi modifica il parametro sul server.
Se non ricoressi ad ajax il tutto funzionerebbe tranquillamente!
 
Ciao, stampa i parametri che ricevi con var_dump() , verifica intanto se sono corretti.
Hai due input con lo stesso name potrebbe crearti qualche problema.
Modifica il type submit con button se vuoi usare ajax altrimenti la pagina si ricarica.
Usa this per valorizzare la variabile ar
Codice:
var ar = $(this).val();
 
Ciao,il var_dump() mi da undefine variable sia di "ar" che di "utente". Molto strano dato che i valori li prende giusti
 
mmh
togli gli spazi nella richiesta
Codice:
 data: "ar = " + ar + "&utente = " + utente,
Codice:
 data: "ar=" + ar + "&utente=" + utente,
 
Ciao criric. ti vorrei chiedere un'altra cosa.
quando avviene la chiamata ajax nel success dovrebbe ricaricarmi la pagina
Codice:
success: function(data){
              $('.wee').html(data);
            }

cioè la pagina viene ricaricata perfettamente, ma se dovessi cliccare su un bottone questo non funziona a meno che non faccio il refresh.
come mai si "blocca"?
 
il bottone è nella risposta "data" ?
c'è una funzione javascript associata?
 
si,il bottone è nella risposta.
si,c'è una funzione associata :

Codice:
window.setInterval(function () {
  $.ajax({
    url: "pcontrol.php",
    dataType: "html",
    success: function(data){
              $('.wee').html(data);
            },
    error: function(){
            alert("Chiamata fallita!!");
           }

  });


}, 5000);

al posto della chiamata ajax avevo provato a mettere :
Codice:
  $('.wee').load("pcontrol.php");
ma è la stessa cosa
 
l'html restituito da ajax viene letto come una sìtringa, non viene interpretato quindi non puoi inserire codice javascript,
puoi invece associare al bottone una funzione con l'evento onclick
<input type='button' onclick='funzione()'/>
e la funzione la crei nella pagina dove hai la chiamata ajax
 
Quindi al click del bottone chiamo una funzione che aggiorna la pagina?
Perdonami ma non riesco a capire.


Inviato dal mio XT1068 utilizzando Tapatalk
 
No, il bottone che non ti funziona che compito ha ?
posta il codice
 
il bottone che non funziona ha il compito di inviare dei valori al php

HTML:
<form id="ARajax" enctype='multipart/form-data'  method='POST'>
     <input type="hidden" id="UID" name="utente" value="<?=$row['id_m']?>"/>
     <input type="submit" class="button tiny" name="ar" value="Accetta"/>
     <input type="submit" class="button tiny" name="ar" value="Rifiuta"/>
 </form>

Codice:
$("input[name='ar']").click(function(event){

  var ar = $("input[name='ar']").val();
  var utente = $("#UID").val();

  $.ajax({
    type: "POST",
    url: "Grichieste.php",
    data: "ar =" + ar + "&utente =" + utente,
    dataType: "html",
    success: function(data){
              $('.wee').html();
            },
    error: function(){
            alert("Chiamata fallita!!!");
           }

  });
});

sempre sulla stessa pagina c'è questo script che aggiorna costantemente l'html :
Codice:
window.setInterval(function () {
  $.ajax({
    url: "pcontrol.php",
    dataType: "html",
    success: function(data){
              $('.wee').html(data);
            },
    error: function(){
            alert("Chiamata fallita!!");
           }

  });


}, 5000);
 
il contentore dove scrivi il risultato (.wee) dov'è ? racchiude anche il form ?
 
scusasmi,si racchiude anche il il form.

HTML:
<div class="wee">
    <br>
      <div class="row">
        <ul class="pricing-table large-12 columns large-centered">
          <li class="title inline"></li>
          <li class="price">Elenco richieste</li>

              <li style="font-size: 22px" class="bullet-item">

                <form id="ARajax" enctype='multipart/form-data'  method='POST'>
                  <input type="hidden" id="UID" name="utente" value="<?=$row['id_m']?>"/>
                  <input type="hidden" id="UDA" name="utente" value="<?=$row['data_richiesta']?>"/>
                  <input type="button" class="button tiny" name="ar" value="Accetta" />
                  <input type="button" class="button tiny" name="ar" value="Rifiuta" />
                </form>
              </li>
      
        </ul>
      </div>
</div>

tra l'altro di questo form possono essercene di piu (in base a quante richieste arrivano :

HTML:
<li style="font-size: 22px" class="bullet-item">

                <form id="ARajax" enctype='multipart/form-data'  method='POST'>
                  <input type="hidden" id="UID" name="utente" value="<?=$row['id_m']?>"/>
                  <input type="hidden" id="UDA" name="utente" value="<?=$row['data_richiesta']?>"/>
                  <input type="button" class="button tiny" name="ar" value="Accetta" />
                  <input type="button" class="button tiny" name="ar" value="Rifiuta" />
                </form>
              </li>
 
allora questo non puo funzionare
Codice:
$("input[name='ar']").click(function(event){
devi creare una funzione
Codice:
function Grichieste(value) {
  // chiamata ajax
}
e il form lo modifichi piu o meno cosi
HTML:
<input type="submit" class="button tiny" onclick="Grichieste('Accetta')" name="ar" value="Accetta"/>
 
ok funziona,però mi aggiorna la pagina e nella console mi spunta :
Codice:
16:13:24.994 NS_ERROR_NOT_AVAILABLE: prompt aborted by user1 nsPrompter.js:427:0
16:13:24.994 uncaught exception: out of memory1 <sconosciuto>
 
modifica il type submit con button
E' un errore creare più elementi con lo stesso id, se non ti serve toglilo dal form altrimenti devi renderlo dinamico
 

Discussioni simili