Laravel: сгенерированные кнопки с петлей (как узнать, какая из них нажата)

Снова привет Stockoverflow, надеюсь, что все хорошо с вами,

Можете ли вы помочь мне снова с Laravel / Ajax?

Исходя из приведенного ниже кода, я сгенерировал таблицу, показанную на картинке. Я хочу сохранить каждую строку при нажатии кнопки. Я знаю достаточно ajax для сохранения, проблема в том, как сказать ajax и jquery, что Строка кнопки является нажатием кнопки, и какой текстовый ввод имеет значение, так как текстовые вводы и кнопки генерируются с помощью цикла / массива?

Спасибо.

            if($list_factors)
        {
            foreach ($list_factors as $key => $list_factor) {
               // dd($list_factors);
                $output.='<tr>'.
                '<td>'.$list_factor->id.'</td>'.
                '<td>'.$list_factor->factor_description.'</td>'.
                '<td><input type="text" id="score" /></td>'.
                '<td><button class="btn btn-info" id="submitScore">OK</button></td>'.
                '</tr>'

            }
            return Response($output);
        }

Таблица рис. [1]

Всего 1 ответ


Прежде всего, вы не можете использовать атрибут id="submitScore" в кнопке, сгенерированной в цикле, потому что id должен быть уникальным. Вместо этого вы можете использовать class="submitScore" . Кроме того, вы не можете использовать id="score" во input , используйте class="score" Так как вы собираетесь использовать jQuery вы можете попробовать что-то вроде этого:

// Register the event handler on 'submitScore' class of button
$('button.submitScore').on("click", function(e) {
    var row = $(this).closest('tr');
    var inputValue = row.find('.score').val();
    console.log(inputValue);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<table>
    <tr>
        <td><input class='score' /></td>
        <td><button class='submitScore'>OK</button></td>
    </tr>
    <tr>
        <td><input class='score' /></td>
        <td><button class='submitScore'>OK</button></td>
    </tr>
 </table>


Есть идеи?

10000