2013-03-19 25 views
5

ho 1 nome file php index.php. in quel file voglio passare una variabile da ajax a php.passa variabile da ajax a php

var elem = document.getElementById("mydiv").value; 
(function($) 
{ 
    $(document).ready(function() 
    { 
     $.ajax(
     { 
      type:"POST", 
      url: window.location.href, 
      data: 'action='+elem, 
      beforeSend: function() { 
       $('#cctv').hide(); 
      }, 
      complete: function() { 
       $('#cctv').show(); 
      }, 
      success: function() { 
       $('#cctv').show(); 
      } 
     }); 
     var $container = $("body"); 
     $container.load('findAllPath.php',{'function': 'findAllPath'}); 
     var refreshId = setInterval(function() 
     { 
      $container.load('findAllPath.php',{'function': 'findAllPath'}); 
     }, 10000); 
    }); 
})(jQuery); 

e il mio php

if (isset ($_POST['action'])) 
{ 
    echo $_POST['action']; 
} 

a Firebug, vedo che l'Ajax già Post 'azione = valore', ma in php, $ _POST [ 'action'] è vuoto. chiunque può aiutarmi, cosa c'è di sbagliato nel mio codice? grazie

+0

Il test di emet passa? È impostato ma solo su una stringa vuota? – Dutts

+0

Da dove sulla pagina è stato eseguito questo javascript? Ad esempio, si trova all'interno del tag '' o nella parte inferiore, vicino a ''? –

+0

Prova a rendere 'data' un hash piuttosto che una stringa di query. – halfer

risposta

1

insieme questo oggetto come JSON:

data: {action: elem} 

e non si mescolano con jQuery js puri.

var elem = $('#myDiv').val(); 

e come sopra detto amico. Ci può essere una situazione in cui js sta cercando di ottenere la proprietà value prima che venga caricata tutta la pagina. Dovresti fare tutto nel blocco di documenti pronti.

si può anche fare:

data: { 
action: $('#myDiv').val() 
} 

Sarete sicuri poi di avere i dati più recenti sulla forma!

4

Prova utilizzando i dati come questo

data: {action: elem}, 

Per esempio

$.ajax({ 
    type: "POST", 
    url: "some.php", 
    data: { name: "John", action: "save" } 
    }).done(function(msg) { 
    alert("Data Saved: " + msg); 
}); 

printr intero $ _REQUEST e controllare se il vostro stanno ottenendo azione

+0

ho già provato, ma non c'è altro :( –

1

Look in a questo e trovare quello che vi siete persi

$.ajax({ 
     type: "POST", 
     url: "some.php", 
     data: { action: elem} 
     beforeSend: function() { 
      $('#cctv').hide(); 
     }, 
     complete: function() { 
      $('#cctv').show(); 
     }, 
     success: function() { 
      $('#cctv').show(); 
     } 
    }); 
    var $container = $("body"); 
    $container.load('findAllPath.php',{'function': 'findAllPath'}); 
    var refreshId = setInterval(function() 
    { 
     $container.load('findAllPath.php',{'function': 'findAllPath'}); 
    }, 10000); 
}); 
+0

hmm? Non capisco ,, se intendi url: "some.php" e non window.location.href, non fare alcun diverso –

+0

dati: 'action =' + elem, questo è sbagliato uno, non ottieni risposta o non riesci a capire? –

0
if (!empty($_POST['action'])) 
{ 
echo $_POST['action']; 
} 

Prova questo codice ...

+0

ma $ _POST ['azione'] non è definito, quindi il test vuoto non passerà –