0
<script type="text/javascript">
        $(document).ready( function() {
            // обрабатываем событие нажатия на любую из ссылок

            // обрабатываем событие нажатия на кнопку "Сохранить изменения""
            $('input[name=addArticle]').click( function () {

                var s_id = $(this).attr("id");

                var nan = $("#nan").text();
                var datas = $("#datas").text();

                var names = $("#names").text();

                $.ajax({
                    type: "POST",

                    url: "http://localhost/zzzzz/addArticle.php",
                    data: "s_id=" + s_id
                    + "&names=" + names
                    + "&nan=" + nan
                    + "&datas=" + datas,

                    success: function(response) {
                        if(response == "OK")
                        {
                            alert("Запись " + names + " добавлена!");
                            location.reload();
                        }
                        else
                            alert("Ошибка в запросе!);
                    }
                });

            });
        });
        </script>

Из БД выводится список

$connect = mysql_connect("localhost", ".....", ".....");
            mysql_select_db("textx",$connect);
            $qr_result = mysql_query("select * from ttttex");

            echo '<table border="1">';
            echo '<thead>';
            echo '<tr>';
            echo '<th></th>';
            echo '<th>Название</th>';
            echo '<th>Сумма</th>';
            echo '<th>Длительность</th>';
            echo '<th></th>';
            echo '</tr>';
            echo '</thead>';
            echo '<tbody>';

            while ($data = mysql_fetch_array($qr_result)){
                echo '<tr>';
                echo '<td><span ><img border=0 src='.$data['img'].'></span></td>';
                echo '<td><span id="names" >' .$data['name'] . '</span></td>';
                echo '<td><span id="sum">'.$data['summa'] . '</span></td>';
                echo '<td><span id="datas">' .$data['date_s'] . '</span></td>';
                echo '<td><input type="button" id='.$data['id'].' name="addArticle" value="Подписать"></td>';

                echo '</tr>';
            }
            echo '</tbody>';
            echo '</table>';

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

var nan = $("#nan").text();
var datas = $("#datas").text();
var names = $("#names").text();

В моем варианте в переменные nan, datas, names попадают первые значения из списка, а надо, чтобы попадали соответствующие выбранному элементу из списка.

0

1 ответ 1

1
var s_id = $(this).attr("id"),
    nan = $(".sum").eq(s_id-1).text(),
    datas = $(".datas").eq(s_id-1).text(),
    names = $(".names").eq(s_id-1).text(),
    eq_elem = $("input").index(this);

Первое, что пришло в голову, это проверять по близлежащим, но так как это табличка, то скрипт не отрабатывал как надо, после чего решил проверять просто по id, но так как у вас в таблице id строки может быть совсем уж отличным от того, какой по счету идет кнопка, то можно дополнительно записать переменную:

var eq_elem = $("input").index(this);

и в дальнейшем вместо .eq(s_id-1) использовать

.eq(eq_elem)

Соглашусь, что костыль и наверняка можно сделать как-то по-другому, но для первого варианта, думаю, вполне может подойти.

И для удобства работы советую не использовать везде id в тегах, лучше с классами работать, так как элементы будут не уникальны и наверняка часто будут повторяться. Я в примере создавал табличку так:

<td><span>Image1</span></td>
<td class="names"><span>Text1</span></td>
<td class="sum"><span>Name1</span></td>
<td class="datas"><span>date1</span></td>
<td><input id="1" type="button" name="addArticle"/></td>

Хотя, если признаться честно, просто в IDE мне все id повторяющиеся подчеркнуло красным. :)

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.