Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/100: Рейтинг темы: голосов - 100, средняя оценка - 4.81
Vdrebezge

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

24.10.2010, 11:03. Показов 19568. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru