2016-06-05 3 views
-1

Я использую Ajax для автоматического обновления значения $ _SESSION, когда используется опция выбора. В частности, если пользователь выбирает язык из выпадающего списка, необходимо обновить $ _SESSION ['language']. Это не происходит с моей реализацией, но я не понимаю, почему.AJAX не передает значения PHP

1) Выбрать:

<select id="lang" name="lang"> 
         <option value="en" data-reactid=".1.$en">English</option> 
         <option value="es" data-reactid=".1.$es">Español</option> 
         <option value="it" data-reactid=".1.$it">Italiano</option> 
         <option value="sv" data-reactid=".1.$sv">Svenska</option> 
        </select> 

2) языки передается JS и Ajax (post_language.js):

$(document).ready(function() { 
$('#lang').change(function() { 
    var language_selection = $(this).val(); 
    $.ajax({ 
     type: 'POST', 
     url: '../includes/ajax/language_ajax.php', 
     data: {lang: language_selection}, 
     success:function(data){ 
      alert('This was sent back: ' + language_selection); 
      $('#lang').html(data); 
     }, 
     error:function(msg){ 
      console.log('error: '+msg);} 
    }); 
}); 

});

На данный момент сообщение ALERT отображается правильно, ОДНАКО, «lang» никогда не достигает $ _SESSION, эхом отозванного из url: language_ajax.php. На самом деле, url никогда не называется ajax.

3) language_ajax.php

if(isset($_POST['lang'])){ 

    $lang = $_POST['lang']; 
    echo "Language " . $lang; 
    } 

Я искал на форумах в течение нескольких часов без успеха. Все решения, похоже, не относятся к использованию «изменения» с помощью списка выбора.

Может ли кто-нибудь помочь? Благодарю.

+0

Что ожидается результат? Текстовый узел 'data':' 'Язык". $ lang' недопустим дочерний элемент '