2013-04-19 1 views
1

Мне нужно передать значение выбора на сеанс без обновления страницы. я думаю onchange мероприятие может быть использован.Передача выпадающего значения на сеанс без обновления страницы

На самом деле, я могу поместить выбранное значение в текстовое поле.

HTML

Выбрать:

<select id="dropdown1" class="select" tabindex="2" onchange="run(this)"> 
    <option>Select</option> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="mercedes">Mercedes</option> 
    <option value="audi">Audi</option> 
</select> 

TextBox:

<input type="text" id="car" name="car" id="car" value="<?=$_POST[car]?>" disabled /> 

JavaScript

function run(sel) { 
    var i = sel.selectedIndex; 
    if (i != -1) { 
     document.getElementById("car").value = sel.options[i].text; 
    } 
} 

Вопрос

Как установить значение для переменной при выборе значения из раскрывающегося списка?

$_SESSION['car'] = DROPDOWN VALUE 
+2

ваше OnChange событие Javascript (на стороне клиента) и переменная сеанса PHP (на стороне сервера). поэтому, если вам действительно не нужно обновлять страницу для установки сеанса переменной, вы должны использовать запрос ajax в своем событии onchange – EmeraldCoder

ответ

1

если вы можете использовать JQuery, это будет работать:

function run(sel) { 

    var i = sel.selectedIndex; 
    if (i != -1) { 
     document.getElementById("car").value = sel.options[i].text; 

     $.ajax({ 
      type: "POST", 
      url: "urPHPPage.php", 
      data: { car: sel.options[i].text} 
     }).done(function(msg) {}); 
    } 
} 

и в файле PHP

if(isset($_POST["car"])){ 
    $_SESSION['car'] = $_POST["car"]; //offcourse you will have to do some sanitization here 
} 
0

Поскольку сеанс является событием на стороне сервера и ваши onchange события события на стороне клиента, вам нужно использовать AJAX для того, чтобы изменить параметры выпадающих без обновления страницы.

Вам нужно будет запустить функцию JavaScript на событии onchange.

В этой функции вам необходимо использовать AJAX для того, чтобы подключиться к базе данных браузера/и сохранить session['car']

Надеются, что это помогает.