Измените значение входного текста, переданное через JSON

#php #jquery #mysql #json #ajax

#php #jquery #mysql #json #ajax

Вопрос:

Мне не помешала бы небольшая помощь. Я загрузил объекты из массива, который я создал на PHP, в несколько полей ввода. Объекты для корзины покупок: цена, количество и общая цена соответственно. Хотя данные загружаются нормально, кажется, что они доступны только для чтения.

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

Я хочу иметь возможность изменять количество без необходимости возвращаться к моей таблице MySQL.

Я могу сделать это просто отлично с обычным Ajax, но когда я использую обычный Ajax, элемент не будет загружаться без обновления, как и все мои другие функции ajax.

Вот код.

    function updates(){ 
         $.getJSON("classes/cartlist.php", function(data) {

         $("#cart_list, #cart_table").empty(); 
            $.each(data.result, function(){ $("#cart_list, #cart_table").append(
                   "<tr id='" this['id'] "'> 
                         <td> " this['pro_title'] " </td> 
                         <td> <input type='text' id='price-" this["p_id"] 
                                "' class='price' pid='" this["p_id"] 
                                "'value='" this["price"] "' /> 
                        </td>
                   </tr> "); 
                 }); 
            }); 
  

Это еще не все, но два других поля ввода — это одно и то же. Я подумал, что это будет легче читать, если я оставлю это так.

РЕДАКТИРОВАТЬ: Вот как выглядит текстовое поле ввода количества, поскольку кто-то спросил.

 <td><input type='text' id='qty-" this["p_id"] "' class='qty' pid='" this["p_id"] "' value='" this["qty"] "' />
  

РЕДАКТИРОВАТЬ: Хорошо, я нашел причину, по которой я не могу изменить текст, и это функция set interval, которая используется с JSON

   function done() {
            setTimeOut (
               function(){
                updates();
                }, 300)
             }
  

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

Комментарии:

1. где находится ваше поле количества?

2. можете ли вы показать структуру json

3. Ах .. я не уверен, что вы имеете в виду.. Извините, я вроде как новичок в JSON..

Ответ №1:

я думаю, что есть ошибка в добавлении строки к

 function updates(){ 
     $.getJSON("classes/cartlist.php", function(data) {

     $("#cart_list, #cart_table").empty();
        //make use of index and value inside function 
        $.each(data.result, function(index,value){ 
            // here some thing with your code because n indicate the end of statement so  
            $("#cart_list, #cart_table").append(
               "<tr id='" this['id'] "'>"   
                     "<td> " this['pro_title'] " </td> " 
                     "<td> <input type='text' id='price-" this["p_id"] 
                            "' class='price' pid='" this["p_id"] 
                            "' value='" this["price"] "' />"  
                    "</td>" 
               "</tr> "); 
             }); 
        }); 
  

Комментарии:

1. Это не работает. Добавляющая часть уже работает отлично, но я просто не могу изменить текст в результирующих текстовых полях ввода.