Вопрос по jQuery

M2
На сайте с 11.01.2011
Offline
341
531

Доброе утро!

Имеется вот такой код:


<span id="goodsNum">{$BASKET_DATA[bd].total}</span>

Пытаюсь это значение обновить:


$('#goodsNum').val(data.goodsNum);

AJAX-запрос отлично отрабатывает, а значение не обновляется (хотя уже должно быть новое значение).

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


<div class="param">{$VALUE}</div>

их тоже по аналогии с первым обновлять так же?

------------------- Крутые VPS и дедики. Качество по разумной цене ( http://cp.inferno.name/view.php?product=1212&gid=1 ) VPS25OFF - скидка 25% на первый платеж по ссылке выше
L9
На сайте с 28.12.2009
Offline
53
#1
mark2011:
Пытаюсь это значение обновить:
Код:

$('#goodsNum').val(data.goodsNum);

Тут вам не VAL нужно обновлять а контент:

$('#goodsNum').text(data.goodsNum);

VAL применяется для значений в контролях textbox, checkbox ...

Программирую на ASP.NET, MVC, C#, ANGULAR JS
S
На сайте с 09.10.2007
Offline
186
#2
levka9:
Тут вам не VAL нужно обновлять а контент:

$('#goodsNum').text(data.goodsNum);

VAL применяется для значений в контролях textbox, checkbox ...

.text() или .html() в зависимости от того содержат данных хтмл или нет

Удобная панель для доменных имен (http://panel.started.ru/) с массовыми операциями. Индивидуальные цены по запросу.
M2
На сайте с 11.01.2011
Offline
341
#3

К сожалению не прокатывает!

Хотя заметил ошибку: id повторяется в цикле. Заменил код вот на такой, смотрите:

HTML:


<span class="good{$BASKET_DATA[bd].product_id}" id="goodsNum">{$BASKET_DATA[bd].total}</span>

Соответственно, из JS к нему пытаюсь обратиться:


var elemName = 'good'+pId;
alert($('.'+elemName).html);
$('.'+elemName).text(data.goodsNum);

alert мне выдаёт вот это:


function (e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1></$2>");try{for(;r<i;r++)n=this[r]||{},n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),n.innerHTML=e);n=0}catch(s){}}n&&this.empty().append(e)},null,e,arguments.length)}

Ума не приложу! Как здесь быть-то?

---------- Добавлено 12.02.2013 в 17:18 ----------

Не могу понять, может ли это влиять, но привожу полный код:


<div class="plus-minus">
<a href="" class="minus" onClick="delFromBasket({$BASKET_DATA[bd].product_id});">minus</a>
<span class="good{$BASKET_DATA[bd].product_id}" id="goodsNum">{$BASKET_DATA[bd].total}</span>
<a class="plus" onClick="addToBasket({$BASKET_DATA[bd].product_id})">plus</a>
</div>
[Удален]
#4
var elemName = '.good'+pId;
alert($(elemName).html());
$(elemName).text(data.goodsNum);

как-то так

A
На сайте с 21.01.2009
Offline
31
#5
var elemName = '.good'+pId;
alert($(elemName).html);

ошибка красным выделена. вызывается .html()

M2
На сайте с 11.01.2011
Offline
341
#6

Прокатывает, но не изменяет значения.

[Удален]
#7
mark2011:
Не могу понять, может ли это влиять, но привожу полный код:

это код чего шаблона? зачем он?

нужен код отдаваемый сервером

M2
На сайте с 11.01.2011
Offline
341
#8

Ребят, всем спасибо! :)))

Имела место очень глупая ошибка )))) в параметр $.ajax не был добавлен dataType: 'json'. Из-за этого только телепат мог понять, что данные передаются именно в JSON-формате и, вроде бы верная строка никак не хотела распознаваться :)))

Всем желаю не допускать таких досадных ошибок, из-за которой просто так ушло несколько часов...

M2
На сайте с 11.01.2011
Offline
341
#9

Продолжу темку....


<span class="totalGoods">{$TOTAL_GOODS}</span> товаров | <span class="totalPrice">{$TOTAL_PRICE}</span> руб


function getBasketGrandTotal()
{
$.ajax({
url: 'includes/ajax.php?mode=getBasketGrandTotal',
dataType: 'json',
type: 'POST',
success: function(data)
{
$('.totalGoods').text(data.total_goods);
$('.totalPrice').text(data.total_price);
}
})
}


case 'getBasketGrandTotal':
$data = array();

$sql = 'SELECT COUNT(id) AS total_products FROM basket WHERE user_id = '.$_SESSION['user_id'];
$db->query($sql);
$r = $db->parse();

$data['total_goods'] = $r['total_products'];

$price = 0;
$sql = 'SELECT product_price FROM basket WHERE user_id = '.$_SESSION['user_id'];
$db->query($sql);
while ($dbdata = $db->parse())
{
$price = $price + $dbdata['product_price'];
}

$data['total_price'] = $price;
die(json_encode($data));
break;

Внимание, ВОПРОС! Почему не обновляется значение полей в span?????

---------- Добавлено 13.02.2013 в 10:12 ----------

Как вот так может быть??


alert($('.totalGoods').html());

в ответ undefined


alert($('.totalGoods').text());

в ответ пустое значение, хотя там есть значение....

---------- Добавлено 13.02.2013 в 10:25 ----------

Закрыто :))

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий