Показать сообщение отдельно
  #2 (permalink)  
Старый 27.06.2014, 01:01
Кандидат Javascript-наук
Отправить личное сообщение для Brutus Посмотреть профиль Найти все сообщения от Brutus
 
Регистрация: 24.11.2013
Сообщений: 127

Ну как-то так

http://learn.javascript.ru/play/96C1fb

<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
    <form onsubmit="func(this);return false;" action="php.php?noJs=true">
      <label for="ranks">Должности</label><br>
      <select id="ranks" name="ranks" size="5" multiple="multiple">
        <option value="Koterov">one</option>
        <option value="Wyke">two</option>
        <option value="Wyke">two</option>
        <option value="Wyke">two</option>
        <option value="Wyke">two</option>
        <option value="Wyke">two</option>
        <option value="Wyke">two</option>
        <option value="Wyke">two</option>
        <option value="Welling">three</option>
      </select>
      <br>
      
      <input placeholder="Название должности" id="name" type="text" name="name" /><br>
      <input type="submit" name="add" value="Добавить"onclick="this.form.submitted = this.name"><br>
      <input type="submit" name="del" value="Удалить" onclick="this.form.submitted = this.name">
    </form>
    <div id="result">Результат: </div>
    <script>
      function getSelectMult(elm){
        if (!elm.options) 
          return null;
        
        var ops = [];
        for (var i = 0; i < elm.options.length; i++)
          if (elm.options[i].selected)
            ops.push(elm.options[i].value);
        return ops;
      }
      if (typeof XMLHttpRequest === "undefined") {
        XMLHttpRequest = function () {
          try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); }
          catch (e) {}
          try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); }
          catch (e) {}
          try { return new ActiveXObject("Microsoft.XMLHTTP"); }
          catch (e) {}
          alert('Error');
        };
      }

      function func (elm) {
        var sel = getSelectMult(elm.elements["ranks"]).join(',');
        var nam = elm.elements["name"].value;
        var div = document.getElementById('result');
        var val = elm.submitted || "add";
        
        
        var xhr = new XMLHttpRequest();
        xhr.open("GET",'/php.php?d='+encodeURIComponent(sel)+'&n='+encodeURIComponent(nam)+'&t='+val, true);
        
        xhr.onreadystatechange = function() {
          if(this.readyState == 4)
            if(this.status == 200){
              div.innerHTML = div.innerHTML + "Успех";
              
            }else
              div.innerHTML = "Результат: Неудача";
          else
            div.innerHTML = "Результат: Неудача";
        }
        
        xhr.send('');
      }
      
    </script>

  </body>
</html>


/php.php

if ($_GET['noJs'] != true){
    $d = explode(',',$_GET['d']);//Наши должности в массиве
    $n = $_GET['n'];//Название должности
    $t = $_GET['t'];//add или del
    //ваш код
}else{
    //ваш код приема формы без ajax
    
}
Ответить с цитированием