2017-08-31 4 views
2

Ich sende die x jQuery Variable in PHP-Datei.Weitergabe von jQuery-Variable an functions.php Wordpress

Dies ist mein jQuery mit der Ajax:

jQuery(document).ready(function($) { 

var x = jQuery('#sbering option:selected').val(); 
jQuery('#optionvalue').html(x); 

    jQuery.ajax({ 
     url: frontEndAjax.ajaxurl, 
     data: { 
      'action':'my_ajax_function', 
      'id' : x 
     }, 
     success:function(data) { 
      console.log(data); 
     }, 
    }); 
}); 

Dies ist die Funktion, wo ich das x-Variable bin das Senden:

function my_ajax_function() { 

    if(isset($_REQUEST['id'])) { 
    $aux = $_REQUEST['id']; 
    echo "ID: " . $aux; 
    } 
    var_dump($aux); 
... 

statt sowohl $ aux und var_dump das Drucken ($ aux) Auf dem Bildschirm sind sie nur in der Konsole sichtbar und $ aux in PHP ist Null.

Image1 Image2

Was mache ich falsch?

+0

haben Sie versuchte, '$ _REQUEST ['id']' in '$ _GET ['id']' einfach zu ändern? –

+0

@PeterDarmis, ja, mit dem gleichen Ergebnis! – deyan4

+0

Ihr Code funktioniert gut, da Sie 'ID: ...' in Ihrer Konsole erhalten, falls Sie die Ausgabe auf dem Bildschirm sehen möchten, versuchen Sie direkt auf die'Ajaxurl' zuzugreifen und fügen Sie die richtigen Abfrageparameter hinzu, da Sie 'GET' verwenden. In deinem Fall wäre das "?action = my_ajax_func & id = 5' –

Antwort

0

das Problem ist in

$aux = json_decode($_POST['id']) 

$_POST['id'] gerade nur verwenden, um den Wert

und json_encode(...) zu erhalten eine Antwort

EDIT einreichen: bemerkte auch einen Fehler in Ihrem Beitrag

jQuery.post(aurl, {id: x}, 'json'); 

Ist falsch, weil du mi bist ssing die vollständige Funktion oder ein done() Versprechen

Lösung 1 Umgang:

jQuery.post(aurl, {id: x}, function(response) { 
    console.log(response); // just an example 
}, 'json'); 

2 Lösung:

jQuery.post(aurl, {id: x}, null, 'json'); 

Lösung 3: Unter Verwendung $.ajax wie in einer anderen Antwort angegeben (die gleich jQuery.ajax)

Einige nützliche URLs:

Ajax: http://api.jquery.com/jquery.ajax/

Beitrag: http://api.jquery.com/jquery.post/

Get: http://api.jquery.com/jquery.get/

+0

Ich habe beide Möglichkeiten ausprobiert, aber Ich bekomme den gleichen Nullwert. – deyan4

+0

Beitrag in der Frage der var_dump ($ _ POST) – saniales

+0

Ich habe alles versucht. Ich habe gesehen, dass Wordpress Ajax anders behandelt. Könnte das mein Problem sein? – deyan4

0

Machen Sie eine AJAX-Post an die Datei wie folgt:

$.ajax({  
    url:'address/to/your/file.php', 
    type: 'post', 
    data: {'JSON' : JSON}, 
    done: function(data) { 
     // this is for testing 
    } 
    }).fail (function() { 
     alert('error'); 
    }).always(function(data) { 
     alert(data);           
     //Loading or animation until you get a response back (if needed) 
    });   
}); 

Und sollte Ihre PHP-Datei wie folgt mehr sein:

<?php 

if(isset($_POST['AJAX'])) { //Checks if there is a POST request 
    $data = $_POST['AJAX']; //Then Assigns the data in the Post request to $data 

    ..... 

} else { 
    echo 'Error: No Data recieved'; 
} 

?> 
Verwandte Themen