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 :: Версия для печати :: Вопрос по Ajax
Форумы портала PHP.SU » » Вопросы новичков » Вопрос по Ajax

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

1. Dee - 15 Октября, 2013 - 15:55:21 - перейти к сообщению
Че то делаю делаю,а он не работает.Наверняка глупая ошибка но я не могу понять.

Есть к примеру 3 кнопки на главной странице

CODE (html):
скопировать код в буфер обмена
  1. <div id="content"></div>
  2. <button name='but' value='1' class="buys">Купить 1</button>
  3. <button name='but' value='2' class="buys">Купить 2</button>
  4. <button name='but' value='3' class="buys">Купить 3</button>



Есть соседний файл test.php
содержит:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $val = $_POST['vals'];
  3. $z = $val * 10 ;
  4. echo $z ;
  5. ?>


До этого у нас подключена библиотека Jquery и прописана следующая функция:

CODE (javascript):
скопировать код в буфер обмена
  1. $(document).ready (function () {
  2.  
  3. var zzz = $(".buys");
  4.  
  5. zzz.click(function() {
  6. var valss = $(this).attr("value");
  7. //alert(valss);
  8.                 $.ajax({  
  9.                     type: "POST",  
  10.                     url: "test.php",  
  11.                     data: { but : valss.val()},  
  12.                     success: function(data){  
  13.                         $("#content").html(data);  
  14.                     }  
  15.                 });  
  16.  
  17. });
  18.  
  19. }) ;


По идее просто должен вернуть цифру атрибута на которую нажали в область
контента,но я не понимаю что не так.... Ураганный огонь
2. IllusionMH - 15 Октября, 2013 - 16:11:20 - перейти к сообщению
Dee, valss = $(this).attr("value"); и valss.val() не смущает?
3. Dee - 15 Октября, 2013 - 16:23:04 - перейти к сообщению
загоняем в переменную valss атрибут value
а дальше valss.val() как было в каком -то уроке,
я ж нуб ,я не знаю что тут еще может смущать )
4. Jlblcblu - 15 Октября, 2013 - 16:24:20 - перейти к сообщению
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <script type="text/javascript">
  3. $(function () {
  4.         $('.buys').click(function() {
  5.                 var valss = $(this).attr("value");
  6.                
  7.                 $.ajax({  
  8.                         type: "POST",  
  9.                         url: "test.php",  
  10.                         data: {
  11.                             vals: valss
  12.                         },  
  13.                         success: function(data){  
  14.                                 $("#content").html(data);  
  15.                         }  
  16.                 });  
  17.         });
  18. }) ;
  19. </script>
  20.  


PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.         $val = $_POST['vals'];
  3.         $z = $val * 10 ;
  4.         echo $z ;
  5. ?>
5. esterio - 15 Октября, 2013 - 16:37:08 - перейти к сообщению

Jlblcblu
Еще лучше рекомендация самого ТС

Зачем работать с атрибутом, если есть метод val, который как возвращает, так и задает значение
CODE (javascript):
скопировать код в буфер обмена
  1. $('input').val('someValue'); // Задали значение
  2. $('input').val(); // Взяли значение someValue
6. Dee - 15 Октября, 2013 - 16:45:53 - перейти к сообщению
Jlblcblu - спасибо,вопрос,
почему если прописать до
$(document).ready(function () {


тут код

}
то эта вставка кода не работает,а если убрать то опять работает
7. Jlblcblu - 15 Октября, 2013 - 16:50:19 - перейти к сообщению
esterio пишет:
Еще лучше рекомендация самого ТС

Немного не понял о чем это Вы.

Использование .val() ничем не отличается от получения атрибута. Человек где-то увидел такое написание и оно вполне жизнеспособно. Можно, например, глянуть вот сюда https://github[dot]com/jquery/jquery[dot][dot][dot]ttributes/val[dot]js
(Добавление)
CODE (javascript):
скопировать код в буфер обмена
  1. $(document).ready(function () {

и
CODE (javascript):
скопировать код в буфер обмена
  1. $(function () {

Это одно и тоже. Обозначает окончание загрузки dom

Таким образом мой код может выглядеть так.

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <script type="text/javascript">
  3. $(document).ready(function () {
  4.         $('.buys').click(function() {
  5.                 var valss = $(this).attr("value");
  6.                
  7.                 $.ajax({  
  8.                         type: "POST",  
  9.                         url: "test.php",  
  10.                         data: {
  11.                             vals: valss
  12.                         },  
  13.                         success: function(data){  
  14.                                 $("#content").html(data);  
  15.                         }  
  16.                 });  
  17.         });
  18. }) ;
  19. </script>
  20.  

 

Powered by ExBB FM 1.0 RC1