javascript
  • php
  • jquery
  • ajax
  • 2016-04-06 3 views -1 likes 
    -1

    У проблемы с вводом на изменение, когда ajax отправляет запрос в файл php, он реализует информацию во входе.Вход jQuery при изменении при отправке запроса ajax

    HTML:

    <div class="col-xs-8"> 
        <div class="form-group" id="kalb1"> 
         <input type='text' id="galutinis2" name='mer[]' value="-" disabled> 
         <input type='text' name='ker[]' value="-" disabled> 
         <input type='text' name='ser[]' value="-" disabled> 
         <input type='text' name='per[]' value="-" disabled> 
        </div> 
    

    JQuery:

    $(document).on('input', '#galutinis2', function() { 
        var galutinis = $(this).attr('id'); 
        alert(galutinis); 
    }); 
    

    PHP реализует входы:

    if(isset($_POST['per']))) { 
        $produktas = $_POST['per']; 
        $infos = CalSkaiciuokle::where("id", $produktas); 
    
         foreach ($infos as $info) { 
         echo "<input type='text' id='galutinis2' name='mer[]' value=" .$info->name. " disabled>"; 
         echo "<input type='text' name='ker[]' value=".$info->surname." disabled>"; 
         echo "<input type='text' name='ser[]' value=".$info->city." disabled>"; 
         echo "<input type='text' name='per[]' value=".$info->address." disabled>"; 
        } 
        exit; 
    } 
    

    AJAX:

    $(document).on('change', '.subcategory', function() { 
    var subcategory_id = $(this).attr('id'); 
    //alert($("#"+subcategory_id).val()); 
    $.ajax({ 
        type: 'post', 
        url: 'ajaxLoader.php', 
        data: { 
         per:$("#"+subcategory_id).val() 
        }, 
        success: function (response) { 
         document.getElementById("kalb"+parseInt(subcategory_id.match(/[0-9]+/)[0], 10)).innerHTML=response; 
        } 
    }); 
    

    }); Где может быть проблема не для предупреждения значения?

    +0

    'input' не является jquery [event] (https://api.jquery.com/category/events/). Также вы не включили свой айхакс-вызов – Mike

    +0

    @Mantas, что вы пытаетесь сделать? – Uzbekjon

    +0

    Я пытаюсь получить входное значение, которое было вставлено во вход после запроса ajax. –

    ответ

    1

    Я предполагаю, что вы заменяете оригинальную форму и события, связанные с «изменением входного значения» (blur, change и т.д.) не называются , Вы можете инициировать их самостоятельно в обратном вызове AJAX.

    success: function(){ 
        document.getElementById("kalb"+par ... 
        $('#galutinis2').trigger('input'); // or better use builtin events 
    } 
    
    +0

    Он работал, когда я меняю триггер («ввод») на триггер ('change'); Спасибо :) –

    0

    Вы завернули код jQuery в document.ready? Пример:

    $(document).ready(function(){ 
        $(document).on('blur', '#galutinis2', function() { 
         var galutinis = $(this).attr('id'); 
         alert(galutinis); 
        }); 
    }); //END document.ready 
    

    Кроме того, обратите внимание, что вы должны оставить поле ввода для blur() события на огонь.

    Если вы хотите, чтобы поймать отдельные нажатия клавиш деятельности, попробуйте .keyup()

    $(document).ready(function(){ 
        $(document).on('keyup', '#galutinis2', function() { 
         var galutinis = $(this).attr('id'); 
         alert(galutinis); 
        }); 
    }); //END document.ready 
    
    +0

    Да, я завернул свой код с document.ready. Этот код также не обнаружил новое вставленное значение. И я не вставляю ключ, я вставляю значения из базы данных. –

    0

    Что-то вроде этого?

    <script> 
        var subcategory_id; 
        $(document).ready(function(){ 
    
         $(document).on('change', '.subcategory', function() { 
          subcategory_id = this.id; 
          //alert($("#"+subcategory_id).val()); <-- does this work?? 
          $.ajax({ 
           type: 'post', 
           url: 'ajaxLoader.php', 
           data: { 
            per:$("#"+subcategory_id).val() 
           }, 
           success: function (response) { 
            var num = parseInt(subcategory_id.match(/[0-9]+/)[0], 10); 
            alert('Num: '+num); 
            $('#kalb'+num).val(response); 
           } 
          }); 
         }); 
    
        }); //END document.ready 
    </script> 
    

    Обратите внимание, что переменная subcategory_id не доступна в функции AJAX success, поэтому должны быть объявлены глобально (за пределами функций, в которых она используется)


    Кроме того, вы можете проверить то, что вы получаете в файле ajaxLoader.php, по только вторя назад данные POST:

    <?php 
        die($_POST['per']); 
    

    И изменить success Функция:

    success: function (response) { 
    alert(response); 
    
    +0

    Функция ajax работает хорошо, она возвращает всю информацию в моем поле ввода. Может быть, проблема в том, что я добавляю свой старый тег html с новым из ajaxLoader (PHP-код на мой вопрос) и jquery не поймают это? –

    +0

    Вы сделали тест, который я предлагаю в нижней части моего ответа (новый контент)? Означает ли функция успеха ajax правильные данные здесь: 'alert (response)'? – gibberish

    +0

    Да, оно возвращает правильное значение –

    Смежные вопросы