#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. Это не работает. Добавляющая часть уже работает отлично, но я просто не могу изменить текст в результирующих текстовых полях ввода.