Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: обновление блока
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » обновление блока

Страниц (2): [1] 2 »
 

1. XochuZnat - 19 Июля, 2015 - 18:55:53 - перейти к сообщению
Приветствую Всех!
Имеется выездной блок
CODE (html):
скопировать код в буфер обмена
  1. <div class="left_panel">
  2.  
  3.         <p class="open"></p>
  4.         <jdoc:include type="modules" name="sideblock" style="xhtml" />
  5.         <p class="calc"><form action="" name="myform" method="post">
  6.    <input  class="calcus" type="text" name="sum" size="25" placeholder="Сумма">
  7.    <input class="calcus"  type="text" name="data" size="25" placeholder="На сколько месяцев?">  
  8.     <input name="Submit" type=submit value="Посчитать"> </p>
  9. </form>

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. if (isset($_POST['Submit'])) {
  5.         $sum = isset($_POST['sum']) ? $_POST['sum'] : '';
  6.         $data = isset($_POST['data']) ? $_POST['data'] : '';
  7.         $vznos = $sum*30/100;
  8.         $result = ($sum-$vznos)/$data ;
  9.         ?>
  10.         Первоначальный взонс <a class="cifra"><?= $vznos;?></a> сум.<br>
  11.   Ежемесечная оплата составляет <a class="cifra"><?PHP echo ceil($result );?></a> сум<br>
  12.   В течении <a class="cifra"><?= $data ;?></a> месяцев.
  13.         <?PHP
  14. }
  15. ?>


Знатоки Javascipt, помогите пожалуйста реализовать обновление блока без полной перезагрузки страницы после вычисления! Ниндзя
2. Viper - 19 Июля, 2015 - 23:28:42 - перейти к сообщению
XochuZnatвы расчеты куда-то на стороне сервера записываете? Если нет, то не вижу смысла вообще отсылать что-либо. Можно весь расчет на клиенте сделать.

PS! Тем более что у вас joomla и данные непойми-куда уходят на сервер.
3. XochuZnat - 20 Июля, 2015 - 07:53:17 - перейти к сообщению
[quote=Viper][/quote]
А как это сделать?
4. Viper - 20 Июля, 2015 - 11:04:56 - перейти к сообщению
XochuZnat пишет:
А как это сделать?

Получить значения формы через document[dot]getElementById() (соответственно полям формы задать id)

Все числовые значения привести к integer через parseInt().
Математика без изменений.
На submit() формы задать внутри return false; чтобы не перезагружало.

PS! По идее чтобы ещё проще было... В joomla есть jQuery. Версию joomla скажите.
5. XochuZnat - 20 Июля, 2015 - 13:06:53 - перейти к сообщению
[quote=Viper][/quote]
2.5 Стоит, а можете на примере показать? Просто с Javascript вообще не дружу

Допустим как вытащить значение с формы, а затем провести математический расчет и вывести
6. etoYA - 20 Июля, 2015 - 17:00:23 - перейти к сообщению
http://jsfiddle[dot]net/9b01xuqb/
7. XochuZnat - 20 Июля, 2015 - 17:04:47 - перейти к сообщению
Закомментировал PHP и написал эту крякозябру, но ничего не работает Недовольство, огорчение
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. <script>
  3. function Submit(){
  4. var sum=document.getElementById('sum').value;
  5. var data=document.getElementById('data').value;
  6. var vznos= sum*30/100;
  7. var result= (sum-vzons)/data;
  8. document.write(result+)
  9. }
  10. </script>
  11.  

(Добавление)
etoYA пишет:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. document.forms.myform.onsubmit = function(){
  3.      var vznos = +this.sum*30/100,
  4.          result = Math.ceil((this.sum - vznos) / +this.data);
  5.      alert(result);
  6.      return false;
  7. }
  8.  

Спасибо, не заметил ваш ответ!
Вставил ваш код
CODE (javascript):
скопировать код в буфер обмена
  1.         <script>
  2. document.forms.myform.onsubmit = function(){
  3.      var vznos = +this.sum*30/100,
  4.          result = Math.ceil((this.sum - vznos) / +this.data);
  5.      alert(result);
  6.      return false;
  7. }
  8.         </script>

После нажатия на submit Выходит окошко с надписью NAN
Ссылка на сайт http://mebeluz[dot]cf/ - Калькулятор находится слева.
8. etoYA - 20 Июля, 2015 - 17:12:38 - перейти к сообщению
XochuZnat, я забыл добавить value, посмотрите еще раз.
9. XochuZnat - 20 Июля, 2015 - 17:24:47 - перейти к сообщению
etoYA пишет:
XochuZnat, я забыл добавить value, посмотрите еще раз.

После нажатия на Посчитать он обновляет страницу и результата нету Растерялся Огорчение
С PHP он тоже обновляет, но результат выводился.
10. IllusionMH - 20 Июля, 2015 - 17:27:23 - перейти к сообщению
XochuZnat, Ctrl + Shift + I или F12. Что пишет на вкладке консоль.
Подозреваю что все получения значений из текстовых полей стоит оборачивать в parseFloat или parseInt
11. XochuZnat - 20 Июля, 2015 - 17:27:51 - перейти к сообщению
Полный код
JS Блока
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. <script type="text/javascript">jQuery.noConflict();</script>
  3. <script>
  4.                 jQuery(document).ready(function(){     
  5.                         /*left panel*/
  6.                         jQuery("div.left_panel p.open").toggle(function(){
  7.                                 jQuery("div.left_panel").animate({left:'230px'},500);}, function() {
  8.                                 jQuery("div.left_panel").animate({left:'-71px'},500);
  9.                         });                    
  10.                 });    
  11.         </script>
  12.  

Блок с Формой
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <div class="left_panel">
  3.  
  4.         <p class="open"><p class="calc"><form action="" name="myform" method="post">
  5.    <input class="calcus" type="text" id="sum" name="sum" size="25" placeholder="Сумма"><br>
  6.    <input class="calcus"  type="text" id="data" name="data" size="25" placeholder="На сколько месяцев?">  <br>
  7.     <input name="Submit" type=submit value="Посчитать"> </p><br>
  8. <jdoc:include type="modules" name="sideblock" style="xhtml" />
  9. </form></p>
  10.  

Ваш скрипт и мой закоментированый PHP
PHP:
скопировать код в буфер обмена
  1. <script>
  2.         document.forms.myform.onsubmit = function(){
  3.      var vznos = +this.sum.value*30/100,
  4.          result = Math.ceil((+this.sum.value - vznos) / +this.data.value);
  5.      document.querySelector('.data').innerHTML = 'Первоначальный взонс <b>'+vznos+'</b> сум.<br>Ежемесечная оплата составляет '+result+' сум<br> В течении 'this.data.value+' месяцев.'
  6.      return false;
  7. }
  8.         </script>
  9. <?PHP /*
  10.  
  11. if (isset($_POST['Submit'])) {
  12.         $sum = isset($_POST['sum']) ? $_POST['sum'] : '';
  13.         $data = isset($_POST['data']) ? $_POST['data'] : '';
  14.         $vznos = $sum*30/100;
  15.         $result = ($sum-$vznos)/$data ;
  16.         ?>
  17.         Первоначальный взонс <a class="cifra"><?= $vznos;?></a> сум.<br>
  18.   Ежемесечная оплата составляет <a class="cifra"><?PHP echo ceil($result );?></a> сум<br>
  19.   В течении <a class="cifra"><?= $data ;?></a> месяцев.
  20.         <?PHP
  21. }
  22. */
  23. ?>

[PHP][/PHP]
12. etoYA - 20 Июля, 2015 - 17:31:59 - перейти к сообщению
XochuZnat, в коде то пытались разобраться, либо копипаст и все?
Если нет, то.

замените на:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. document.querySelector('.data').innerHTML = 'Первоначальный взонс <b>'+vznos+'</b> сум.<br>Ежемесечная оплата составляет '+result+' сум<br> В течении 'this.data.value+' месяцев.'
  3.  

на
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. document.write('Первоначальный взонс <b>'+vznos+'</b> сум.<br>Ежемесечная оплата составляет '+result+' сум<br> В течении 'this.data.value+' месяцев.');
  3.  

должно помочь.
13. XochuZnat - 20 Июля, 2015 - 17:36:44 - перейти к сообщению
[quote=IllusionMH][/quote]
Uncaught SyntaxError: Unexpected token this
(index):671 The specified value '\u0412\u0430\u0448 Email' is not a valid email address.
(Добавление)
[quote=etoYA][/quote]
Понял только мат часть)
Заменил
CODE (javascript):
скопировать код в буфер обмена
  1. <script>
  2.         document.forms.myform.onsubmit = function(){
  3.      var vznos = +this.sum.value*30/100,
  4.          result = Math.ceil((+this.sum.value - vznos) / +this.data.value);
  5.      document.write('Первоначальный взонс <b>'+vznos+'</b> сум.<br>Ежемесечная оплата составляет '+result+' сум<br> В течении 'this.data.value+' месяцев.');
  6.      return false;
  7. }
  8.         </script>

Все равно обновляется весь сайт, блок задвигается, кликаю - выезжает пустым Огорчение
Консоль ругается
Uncaught SyntaxError: missing ) after argument list
Только чет не пойму где?!
14. etoYA - 20 Июля, 2015 - 18:29:01 - перейти к сообщению
CODE (javascript):
скопировать код в буфер обмена
  1. this.data.value+' месяцев.');

на
CODE (javascript):
скопировать код в буфер обмена
  1. +this.data.value+' месяцев.');
15. XochuZnat - 20 Июля, 2015 - 18:32:54 - перейти к сообщению
[quote=etoYA][/quote]
Спасибо, все посчиталось но на новой странице, а вывод в этом же блоке как реализовать?
http://itmages[dot]ru/image/view/2782158/e6094083
Нужно обновление только болка div
На скрине вывод с PHP, но вся проблема с ним состояла в том что обновлялась вся страница, из-за обновления блок с калькулятором задвигался.

 

Powered by ExBB FM 1.0 RC1