2016-08-08 52 views
1

Ich bin mir nicht sicher, ich verstehe, wie Ajax funktioniert, obwohl ich viel darüber gelesen habe. Ich möchte folgendes PHP ausgeführt werden, wenn eine Schaltfläche geklickt wird, ohne die Seite zu laden:Variable an PHP-Skript übergeben mit AJAX

unset($checkout_fields['billing']['billing_postcode']); 

Also habe ich folgendes:

jQuery(document).ready(function($) { 
    $('.keep-buying-wrapper').click(function(){ 

     $.ajax({ 
      url: "url-to-the-script.php", 
      method: "POST", 
      data: {'checked': checked}, 
      success: alert('success!'), 

     }); 
    }); 
}); 

Und in meinem PHP-Skript:

if($_POST['checked'] == 'checked'){ 
     unset($checkout_fields['billing']['billing_postcode']); 
} 

Nichts passiert jedoch. Auch wenn der Erfolgsalarm ausgelöst wird, ist POST['checked'] null.

Soll der Ajax das PHP-Skript auslösen?
Was ist, wenn ich eine Variable an functions.php senden möchte?

+2

'Daten: { 'geprüft': 'geprüft'}' – Saurabh

+1

geprüft ist eine Variable .. – Avishay28

+0

Sie führen AJAX auf Dokument bereit, verwenden Sie stattdessen 'click' Ereignis – Saurabh

Antwort

3

Das Problem ist, dass Sie Postdaten zuerst serialisieren müssen.

HTML-Code (Die ID und Name der Checkbox ist "billing_postcode"):

<input type = "checkbox" id = "billing_postcode" name = "billing_postcode"> 

JS-Code

$(document).on('click', '#billing_postcode', function (event) { 

    var data = $("#billing_postcode").serializeArray(); 
    $.ajax({ 
     url: "url-to-the-script.php", 
     method: "POST", 
     data: data, 
     success: alert('success!'), 
    }) 
}); 

Sie Wert in der Post-Array auf Server-Seite erhalten und enter code here in PHP-Skript:

if($_POST['billing_postcode']) 
    unset($checkout_fields['billing']['billing_postcode']);