|
Ошибка в коде (PHP + JavaScript) | ☑ | ||
---|---|---|---|---|
0
s-pc
23.03.15
✎
11:00
|
Подскажите, пожалуйста, что, где и как правильно прописать вместо
=== <span id=i1 class="price-new" onchange=f() name="pk_price" data-bme="Цена"><?php echo $price; ?></span> === (см. рисунок по ссылке - http://clip2net.com/s/3eHkEq0) Если <span></span> заменить на <input> - все работает. Но мне не нужен там <input> - там автоматом выводится цена, которая в данном месте не должна редактироваться. |
|||
1
zdas
23.03.15
✎
11:02
|
попробуй сменить на <p> + onchange наверное не надо обрабатывать?
|
|||
2
zdas
23.03.15
✎
11:03
|
+1 хотя P вряд ли как панацея поможет, скорее всего надо смотреть стиль у span. Скинь пример картинки как отображается со span
|
|||
3
s-pc
23.03.15
✎
11:15
|
||||
4
Asmody
23.03.15
✎
11:24
|
(0) У тебя в js используется value. У span свойства value нет.
|
|||
5
Asmody
23.03.15
✎
11:26
|
можно вставить <input type="hidden"> или <input disabled="disabled">
|
|||
6
s-pc
23.03.15
✎
11:40
|
(5) не, не прокатывает.
Кстати, а может каким-то иным способом можно проблему решить, как-то проще? Мне просто нужно создать переменную Сумма и присвоить ей значение Кол-во * Цена. |
|||
7
stix2010
23.03.15
✎
11:41
|
вместо value - html()
|
|||
8
s-pc
23.03.15
✎
11:41
|
||||
9
stix2010
23.03.15
✎
11:46
|
$('#i1').html(n1*n2);
|
|||
10
Asmody
23.03.15
✎
11:50
|
(6) что у тебя не прокатывает?
делаешь <input id="i1" type="hidden" value="<?= $price; ?>"><span class="price-new"><?= $price; ?></span> |
|||
11
s-pc
23.03.15
✎
12:03
|
(10) Перестал в i3 ошибку Nan показывать, но все равно пока не работает. Вот так я поменял - http://clip2net.com/s/3eHD8w4 - что неправильно сделал?
|
|||
12
s-pc
23.03.15
✎
12:05
|
+(10) вот сама форма - http://clip2net.com/s/3eHqZIZ
|
|||
13
Asmody
23.03.15
✎
12:11
|
(11) в js верни value, у скрытого input oninput не нужен. А вот аттрибуты name и data-bme лучше оставить, мало ли где они еще используются
|
|||
14
s-pc
23.03.15
✎
19:16
|
Чего-то у меня так ничего и не получилось.
В общем, вот сама форма - http://clip2net.com/s/3eJPGsF Вот код, который рабочий - здесь все ОК. (вот ссылка на рисунок этого кода http://clip2net.com/s/3eJNzjN ) ====================================== <script> function f(){ var n1=document.getElementById('i1').value; var n2=document.getElementById('i2').value; document.getElementById('i3').value=Number(n1)*Number(n2); } </script> <input id=i1 type="number" min="1" max="99" value=1 oninput=f()> <input id=i2 value=5 oninput=f()> <input id=i3 value=15 > =========================================== А вот код, который получился с вашей помощью (здесь рисунок этого кода - http://clip2net.com/s/3eJNpqO ). Между тэгами <script> ничего не менял - там все тоже самое. ============================================ <input id=i1 class="q-mini" type="number" min="1" max="99" oninput=f() name="quantity" size="2" value="<?php echo $minimum; ?>" data-bme="Количество"/> <input id=i2 oninput=f() type="hidden" value="<?= $price; ?>"><span class="price-new" name="pk_price" data-bme="Цена"><?= $price; ?></span> <input id=i3 value=15 > =============================================== В таком виде - не работает. Показывает NaN в поле id=i1 Где ошибка? |
|||
15
Asmody
23.03.15
✎
19:22
|
(14) и чему у тебя равен $minimum в php?
И атрибуты name и data-bme должны быть у input, а не у span |
|||
16
s-pc
23.03.15
✎
19:33
|
(15) $minimum всегда какую-нибудь цену показывает, т.е. нулевых значений не бывает. О, кстати, а может дело в том, что там дробные значения? Как это дело исправить?
а на счет data-bme = это переменная одного (другого) скрипта - которому пофиг, где этот параметр стоит - он всегда "угадывает" нужноые значения из строки. |
|||
17
Asmody
23.03.15
✎
19:48
|
(16) вообще каша. Какого тогда этот $minimum делает в поле Количество?
|
|||
18
s-pc
23.03.15
✎
19:53
|
(17) ой, ошибся, перепутал - это не цена - это количество - и $minimum = 1.
|
|||
19
Asmody
23.03.15
✎
20:26
|
все там работает http://jsfiddle.net/cp0cr1mL/
|
|||
20
s-pc
24.03.15
✎
13:18
|
(20) Докопался до сути. Все проблема в том, что в переменную прайс (из другого скрипта) попадает значение "22.32 руб." вместо "22.32".
Не подскажешь, что тут можно сделать, чтобы вытащить из переменной числовое значение? В пока оригинале вот так: value="<?= $price; ?>"> |
|||
21
Asmody
24.03.15
✎
13:36
|
(20) вытащи регуляркой на php
<?php function getPrice($p) { $m = array(); $pat = '/\d+.\d+/'; retrun (preg_match($pat, $p, $m)) ? $m[0] : 0; } $price = getPrice($price); ... |
|||
22
Asmody
24.03.15
✎
13:37
|
регулярка съелась
правлильно так $pat = '/\d+.\d+/'; |
|||
23
Asmody
24.03.15
✎
13:38
|
да блин!
короче, нужен еще \ перед точкой |
|||
24
s-pc
24.03.15
✎
14:03
|
(23) А еще вот так подсказали
<?php echo floatval($price); ?> так можно или здесь что-то не то? |
|||
25
Asmody
24.03.15
✎
14:09
|
можно и так
|
|||
26
s-pc
24.03.15
✎
14:10
|
Наконец-то все получилось! Всем спасибо за помощь. Тема закрыта. :-)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |