Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.93/14: Рейтинг темы: голосов - 14, средняя оценка - 4.93
Eraser83
18 / 18 / 4
Регистрация: 09.11.2010
Сообщений: 251
1

Checkbox+AJAX+MYSQL+PHP

25.07.2011, 10:48. Просмотров 2471. Ответов 10
Метки нет (Все метки)

Здравствуйте. ПОмогите пожалуйста. У меня есть БД с каналами и ценами. Мне необходимо чтобы при нажатии на чекбоксе считалась сумма в диве. Как это лучше организовать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2011, 10:48
Ответы с готовыми решениями:

php MySQL ajax корзина
Буду благодарен за помощь. Необходимо создать упрощенную корзину покупок. ...

как отправить строку из таблицы (php, сформированной из mysql) в контейнер ajax при нажатии на строку 2ым клик
Доброго времени суток) уважаемые программисты столкнулся со сложной задачей,...

Вытащить переменную из цикла PHP в функцию JS, и через AJAX обратно в PHP
Здравствуйте! Моя задача сделать форму обратной связи, но не самую простую....

Отправить массив из php(handler, сервер) в php(ajax, клиент)
Дело вот какое: имеется база сотрудников. Клиенту в браузер выдаю список...

Посоветуйте литературу по безопасности Ajax, MySQL
Недавно я выучил JavaScript и сразу взялся за новый проект насыщенный Ajax'ом....

10
VeteranPro
21 / 21 / 11
Регистрация: 25.12.2009
Сообщений: 69
25.07.2011, 11:26 2
Можно вот так попробовать
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<html>
 
<head>
 
<script src="http://yandex.st/jquery/1.6.0/jquery.min.js"></script>
 
</head>
<script>
$(document).ready(function() {
     
    $('#location').change(function(){
        var loc_val = $('#location').val();
        $.get('function.php',{'loc_val':loc_val}, function(data){
                $('#result').empty();
                $('#result').append(data);              
            });
    });
  });
</script>
</head>
<body>
 
<table>
 
<tr>
 
<td>
 
Location
 
</td>
 
<td>
 
<select id='location'>
    <option value=1>Moskov</option>
    <option value=2>Piter</option>
</select>
 
</td>
 
</tr>
 
</table>
<div id='result'>
</div>
 
</body>
 
 
</html>
А в скрипте function.php просчитывать что нужно и выводить в div
0
Eraser83
18 / 18 / 4
Регистрация: 09.11.2010
Сообщений: 251
25.07.2011, 11:36  [ТС] 3
У меня вот такой код
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function summ()
{var url = "http://invistv.ru/components/com_php/files/summ.php?summa="+summa; 
request.open("GET", url, true);
request.onreadystatechange = function() {if (request.readyState == 4) 
                                         {if (request.status == 200) 
                                          {alert(request.responseText);
                                          }
                                          else
                                          {
                                           alert("There was a problem with the request." +request.status);
                                          }
                                         }
                                        };
request.send(null);
}
summ.php:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php 
$summa = $_GET['summa'];
$hostname = "localhost"; 
$username = "user"; 
$password = "user"; 
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); 
mysql_select_db($dbName) or die(mysql_error());  
mysql_set_charset('utf8');
$query = "SELECT SUM(P.cost_p)  
FROM packet p
WHERE Packet_name IN ('$checks');"; 
$res = mysql_query($query) or die(mysql_error()); 
while ($row=mysql_fetch_array($res)) { 
    echo $row['SUM(P.cost_p)'];
   }
 
?>
Но выводит ошибку при нажатии
PHP
1
echo '<tr><td><label><font size="1"><input type="checkbox" name="type[]" value="'.$row['Packet_name'].'" OnClick = "summ()">';
Добавлено через 2 минуты
Ошибка : There was a problem with the request.
0
VeteranPro
21 / 21 / 11
Регистрация: 25.12.2009
Сообщений: 69
25.07.2011, 11:44 4
Javascript
1
request
Вот этот объект не видно где создается) как я написал это с использованием jquery. Если под ваш скрипт то вот так будет

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<html>
 
<head>
 
<script src="http://yandex.st/jquery/1.6.0/jquery.min.js"></script>
 
</head>
<script>
$(document).ready(function() {
         
        $('#location').change(function(){
                var summa = $('#location').val();
                $.get('./components/com_php/files/summ.php',{'summa':summa}, function(data){
                                $('#result').empty();
                                $('#result').append(data);                              
                        });
        });
  });
</script>
</head>
<body>
 
<table>
 
<tr>
 
<td>
 
Location
 
</td>
 
<td>
 
<select id='location'>
        <option value=1>Moskov</option>
        <option value=2>Piter</option>
</select>
 
</td>
 
</tr>
 
</table>
<div id='result'>
</div>
 
</body>
 
 
</html>
0
Eraser83
18 / 18 / 4
Регистрация: 09.11.2010
Сообщений: 251
25.07.2011, 11:50  [ТС] 5
Да создается
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var request = false;
   try {
     request = new XMLHttpRequest();
   } catch (trymicrosoft) {
     try {
       request = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (othermicrosoft) {
       try {
         request = new ActiveXObject("Microsoft.XMLHTTP");
       } catch (failed) {
         request = false;
       }  
     }
   }
if (!request)
alert("Error initializing XMLHttpRequest!");
А JQuery не надо.

Добавлено через 4 минуты
Ой выводить надо не в див, а в алерте.
0
VeteranPro
21 / 21 / 11
Регистрация: 25.12.2009
Сообщений: 69
25.07.2011, 12:07 6
У меня вот так работает. Но я бы посоветовал использовать jquery. Сам вот так делал шас надо переделывать так как не во всех браузерах работает.
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<html>
 
<head>
</head>
<script>
 
  
  var request = false;
   try {
     request = new XMLHttpRequest();
   } catch (trymicrosoft) {
     try {
       request = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (othermicrosoft) {
       try {
         request = new ActiveXObject("Microsoft.XMLHTTP");
       } catch (failed) {
         request = false;
       }  
     }
   }
if (!request)
    alert("Error initializing XMLHttpRequest!");
 
  function summ(){
    var summa = document.getElementById('location').value;
    alert(summa);
    var url = "./components/com_php/files/summ.php?summa="+summa; 
        request.open("GET", url, true);
        request.onreadystatechange = function() {
            if (request.readyState == 4) 
            {
                if (request.status == 200) 
                {
                    alert(request.responseText);
                }
                else
                {
                  alert("There was a problem with the request." +request.status);
                }
            }
        };
    request.send(null);
}
</script>
</head>
<body>
 
<table>
 
<tr>
 
<td>
 
Location
 
</td>
 
<td>
 
<select id='location' OnChange='summ();'>
    <option value=1>Moskov</option>
    <option value=2>Piter</option>
</select>
 
</td>
 
</tr>
 
</table>
<div id='result'>
</div>
 
</body>
 
 
</html>
0
Eraser83
18 / 18 / 4
Регистрация: 09.11.2010
Сообщений: 251
25.07.2011, 12:24  [ТС] 7
Это не селект а чекбокс.
0
VeteranPro
21 / 21 / 11
Регистрация: 25.12.2009
Сообщений: 69
25.07.2011, 12:34 8
Чет прочитал не правильно. Тогда просто по событию OnClick нужно вызывать функцию.
0
Eraser83
18 / 18 / 4
Регистрация: 09.11.2010
Сообщений: 251
25.07.2011, 12:35  [ТС] 9
Вызывал. Мне надо просто получить от summ.php получить echo. А дальше я сам.
0
VeteranPro
21 / 21 / 11
Регистрация: 25.12.2009
Сообщений: 69
25.07.2011, 12:42 10
А ты где тестируешь? у меня в лисе работает а в ie нет
0
Eraser83
18 / 18 / 4
Регистрация: 09.11.2010
Сообщений: 251
26.07.2011, 12:15  [ТС] 11
В Ие, в МОЗИЛЕ и в ОПЕРЕ. Везде одинаково.

Добавлено через 4 минуты
Извеняюсь. в IE работает, а в Лисе нет.

Добавлено через 17 часов 34 минуты
Помогите плз. Не могу сделать так чтобы заработало в Мозилле
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function summ()
{var url = "http://invistv.ru/components/com_php/files/summ.php?summa="+summa; 
request.open("GET", url, true);
request.onreadystatechange = function() {if (request.readyState == 4) 
                                         {if (request.status == 200) 
                                          {alert(request.responseText);
                                          }
                                          else
                                          {
                                           alert("There was a problem with the request." +request.status);
                                          }
                                         }
                                        };
request.send(null);
}
Работате тольков ИЕ.

Добавлено через 5 часов 47 минут
Нашел выход необходимо писать :
Javascript
1
http://www.invistv.ru/components/com_php/files/summ.php?summa="+summ
Вместо
Java
1
http://invistv.ru/components/com_php/files/summ.php?summa="+summ
0
26.07.2011, 12:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2011, 12:15

Запуск кода PHP после включения checkbox
Добрый день, помогите пожалуйста. Есть ряд checkbox - например таких: ...

Как сделать связанные выпадающие списки mysql + ajax ?
Как сделать связанные выпадающие списки mysql + ajax ?

AJAX и PHP
Здравствуйте. Помогите пожалуйста. Есть обработчик: var request = false; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru