Vdrebezge

Передать несколько переменных через ajax

24.10.2010, 11:03. Показов 19622. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
У меня в js коде появляется несколько переменных. Типа того
JavaScript
1
2
3
4
5
6
7
var price=$("#price_for_js").text();
var sqaure_width=$("#sqaure_width option:selected").text();
if (sqaure_width==0)
            {sqaure_width=1}
var sqaure_length=$("#sqaure_length option:selected").text();
var cost_cm=$("input[name='prop[COLOR_PHOTO]']:checked").parent().find("#cost_cm").text();
var quantity=$('#quantity').val();
Не подскажете как их всех передать через ajax.
Заанее спасибо.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.10.2010, 11:03
Ответы с готовыми решениями:

Несколько переменных в Ajax DATA?
Как засунуть несколько переменных в ajax data? пробовал, но результата - 0 : data: { name : name,phone: phone, time: time },

Из php в JavaScript несколько переменных (Ajax)
Вообщем есть функция которая отправляет в php несколько переменных. $.post('RegScript.php', { LoginReg:LoginReg, ...

С ajax нужно отправить несколько POST переменных
научился передовать только один POST, а нужно в 'ajaxData.php' закинуть два POST массива $('#type').on('change',function(){ var...

10
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
24.10.2010, 17:14
Пихнуть в масив и передать масив, только сначала его надо преобразовать в json
0
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
24.10.2010, 22:18
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$.post(
    'backend.php',
    {
        price: price, 
        square_w: sqaure_width,
        square_l: sqaure_length,
        cost_cm: cost_cm,
        quantity: quantity
    },
    function ()
    { 
        alert('Данные успешно отправлены');
    }
);
В backend.php переменные вылавливаем в массиве $_POST
0
 Аватар для DanteLoL
5 / 6 / 2
Регистрация: 13.06.2013
Сообщений: 134
31.08.2013, 11:38
ostgals, а как сделать так что бы ajax вернул 2 параметра???

Добавлено через 4 минуты
есть у меня вот такой запрос
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
<script src="javascript/jquery-1.10.2.min.js" type="text/javascript"></script>
         <script type="text/javascript">
            function setRate(id, operation) {
            $.ajax({
                    type: "POST",
                    url: "phpscripts/raiting.php",
                    data: "id=" + id + "&operation=" + operation,
                    success: function(html){
                        $("#rating" + id).html(html);
                    }
                }); 
            }
        </script>
в обработчкие все вот так

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
include ("bd.php");
 
$id         = $_POST['id']; //Получаем id записи
$operation  = $_POST['operation']; //Вид операции +/-
 
$result = mysql_query("SELECT id, raiting FROM photos WHERE id = '$id'");
$row = mysql_fetch_array($result);
 
if ($operation == 'plus') 
{
    $newRate = ($row['raiting'] + 1);
 
        $upR = mysql_query("UPDATE photos SET raiting = '$newRate' WHERE id = '$id'");
    echo $newRate; //Выводим новую оценку
} 
else
{
    $newRate = ($row['raiting'] - 1);
        //Обновляем значение в БД
    $upR = mysql_query("UPDATE photos SET raiting = '$newRate' WHERE id = '$id'");
    echo $newRate; //Выводим новую оценку
}
?>
мне надо что бы Аякс вернул 2 параметра не только рейтинг но еще к примеру одну строку - как это сделатЬ?? зарание спасибо!

Добавлено через 3 часа 4 минуты
есть тут ктонибудь?)
0
 Аватар для Soldado
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
31.08.2013, 13:10
Чтобы передать несколько переменных с целью их размещения в разных блоках страницы удобно использовать формат данных json
Вот как на примере это выглядит (упрощённый ваш случай)
index.php
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
<html>
  <head>
    <title>ajax json</title>
    
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
// для демонстрации, клик по кнопкам
$('.punkt input[type=button]').click(function(){
  var id=$(this).closest('.punkt').attr('data-id');
  var operation=$(this).attr('data-operation');
  setRate(id, operation);   
});// для демонстрации, клик по кнопкам
 
 
            function setRate(id, operation) {
            $.ajax({
                    type: "POST",
                    url: "phpscripts/raiting.php",
                    data: "id=" + id + "&operation=" + operation,
                     dataType: "json",// важно! тип данных json
                    success: function(html){
                        $("#rating" + id).html(html.par1);// важно! тип данных json
                        $("#rating" + id).next().html(html.par2);// важно! тип данных json
                    }
                });
setTimeout(function(){$('.info').text("")},2000);// для демонстрации, очистка блоков                 
            }
            });/*end  ready*/
        </script>
<style>
.punkt{
    border: 2px solid green;
    background-color: #bcf3cb;
    width: 300px;
    height: 60px;
    margin: 4px ;
    text-align: center;
    padding: 4px;
    cursor: pointer;
}
</style>
</head>
<body >
<div data-id="1" class="punkt">Первый блок 
       <input type="button" data-operation="plus" value="+"/>
       <input type="button"  data-operation="minus"  value="-"/><br/>
       <span id="rating1" class="info"></span><span  class="info"></span>
</div>
<div data-id="2" class="punkt">Второй блок 
       <input type="button" data-operation="plus" value="+"/>
       <input type="button" data-operation="minus" value="-"/><br/>
       <span id="rating2" class="info"></span><span  class="info"></span>
</div>
<div data-id="3" class="punkt">Третий блок 
       <input type="button" data-operation="plus" value="+"/>
       <input type="button" data-operation="minus" value="-"/><br/>
       <span id="rating3" class="info"></span><span  class="info"></span>
</div>      
</body>
</html>
phpscripts/raiting.php (без базы данных, только демонстрация возврата двух переменных в json)
PHP
1
2
3
4
5
6
7
<?php 
$id = $_POST['id']; //Получаем id записи
$operation  = $_POST['operation']; //Вид операции +/-
// работаем с базой данных и возвращаем 2 параметра 
$res['par1'] = "Вернём id = $id";// важно! тип данных json
$res['par2'] = "<br/>Вернём операцию и id = $operation ---$id";// важно! тип данных json
echo json_encode($res);
Выбрать то, что важно
1
 Аватар для paha444
9 / 9 / 4
Регистрация: 04.08.2013
Сообщений: 161
02.09.2013, 13:59
Всуну свои 5 копеек...

PHP
1
2
3
4
5
$id         = $_POST['id']; //Получаем id записи
$operation  = $_POST['operation']; //Вид операции +/-
 
$result = mysql_query("SELECT id, raiting FROM photos WHERE id = '$id'");
$row = mysql_fetch_array($result);
Вот так пихать полученные POST данные небезопастно, + у вас не отключен прямой доступ к скрипту... Советую добавить вам.

PHP
1
2
3
if ($_SERVER["SCRIPT_NAME"] == "/folder/file.php") {
die();
}
и фильтровать переменные хотябы так

PHP
1
2
3
4
5
6
7
8
$id         = $_POST['id']; //Получаем id записи
$operation  = $_POST['operation']; //Вид операции +/-
 
$id = htmlspecialchars($id);
$operation = htmlspecialchars($operation);
 
$id = mysql_real_escape_string ($id);
$operation = mysql_real_escape_string ($operation);

В идеале, написать функцию которая проверяет запрос на наличие таких слов как (UNION,JOIN,SELECT,FROM) и т.д. , а потом просто её вызывать при добавлении записи в БД.
1
 Аватар для DanteLoL
5 / 6 / 2
Регистрация: 13.06.2013
Сообщений: 134
04.09.2013, 11:22
небольшая трабла у меня тут возникла рейтинг под json работает а вот мне еще надо выводить общий рейтинга тоесть в обработчике вот так в $Allrating все заносится

PHP
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
<?php
include ("bd.php");
 
$id         = $_POST['id']; //Получаем id записи
$operation  = $_POST['operation']; //Вид операции +/-
$idus     = $_POST['idus']; //Получаем id записи 
 
$result = mysql_query("SELECT id, raiting FROM photos WHERE id = '$id'");
$row = mysql_fetch_array($result);
 
if ($operation == 'plus') 
{
    $newRate = ($row['raiting'] + 1);
 
        $upR = mysql_query("UPDATE photos SET raiting = '$newRate' WHERE id = '$id'");
    
    
} 
else
{
    $newRate = ($row['raiting'] - 1);
        //Обновляем значение в БД
    $upR = mysql_query("UPDATE photos SET raiting = '$newRate' WHERE id = '$id'");
    
}
 
 
$count = 0;
$allraiting = 0;
$resphoto = mysql_query("SELECT * FROM photos WHERE idus='$idus' LIMIT 5",$db); 
while ($myrowphoto = mysql_fetch_array($resphoto)):
    $raiting[$count] = $myrowphoto['raiting'];
    $allraiting += $raiting[$count];
    $count = ($count + 1);
    endwhile;
$res['par1'] = "$newRate";
$res['par2'] = "$allraiting";
echo json_encode($res);
 
?>

аякс выглядит вот так

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script type="text/javascript">
            function setRate(id, operation, idus) {
            $.ajax({
                    type: "POST",
                    url: "phpscripts/raiting.php",
                    data: "id=" + id + "&operation=" + operation +"&idus=" + idus,
                    dataType: "json",
            success: function(html){
                        $("#rating" + id).html(html.par1);
            $("#allrating").next().html(html.par2);
                    }
                }); 
            }
        </script>
а выводить должен рейтинг вот так
HTML5
1
Общий рейтинг: <span id="allrating"><?php echo $allraiting; ?></span>
но почему то он не меняет егопри изменениях(((

Добавлено через 10 часов 54 минуты
может id не правильно раставил??

Добавлено через 1 час 19 минут
а как проверить поступают ли переменные через POST в сервер???
0
284 / 283 / 73
Регистрация: 06.05.2013
Сообщений: 1,613
04.09.2013, 11:27
JavaScript
1
$("#allrating").next().html(html.par2);
а зачем некст?
Что у Вас там?
0
 Аватар для DanteLoL
5 / 6 / 2
Регистрация: 13.06.2013
Сообщений: 134
04.09.2013, 13:04
sMockingbird, там? 2й параметр от обработчика вон вверху оО хотя я не уверен мне так посоветовали
0
284 / 283 / 73
Регистрация: 06.05.2013
Сообщений: 1,613
04.09.2013, 13:10
Не, я имею в виду, зачем next()?
Он же в таком случае не в "#allreting" пишется, а в след. элемент набора, которого, как я полагаю, нету)
ну если я окончательно не заработался, могу ошибаться)
попробуйте убрать некст)
1
 Аватар для DanteLoL
5 / 6 / 2
Регистрация: 13.06.2013
Сообщений: 134
04.09.2013, 16:48
sMockingbird, бинго))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.09.2013, 16:48
Помогаю со студенческими работами здесь

Jquery передать несколько переменных из php
Для элемента &lt;select нужно получить список и size, весь мозг сломал, помогите плиз. $(document).ready(function() { ...

Как передать через AJAX multiple select через serialize и обратиться к этому в php
Добрый день, подскажите пожалуйста. Раньше не было множественного выбора в select, передавал данные следующим образом: ...

Передать input (checkbox) через ajax
Здравствуйте. Есть скрипт &lt;script type=&quot;text/javascript&quot; &gt; $(function() { $(&quot;.submit&quot;).click(function() { var url =...

Передать через AJAX в PHP двумерный массив
Добрый день. Есть примерно такой код: var range = , sliderValues = ; ... sliderValues = range; Есть массив range, который...

Как отправить через ajax одну из несколько форм с одинаковым id?
здравствуйте хочу отправить через ajax форму: &lt;?php $result = $mysqli-&gt;query(&quot;SELECT * FROM product ORDER BY id DESC&quot;); ...


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

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

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru