С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 1
Регистрация: 03.12.2011
Сообщений: 136

Передать переменную из js в php в обратную свзяь

15.07.2017, 03:20. Показов 2052. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Гугл категорически не помог, хотя обсуждалось множество довольно близких тем. Задачи было две:
1. в подключенном к странице скрипте - имеется переменная, которая при определнных манипуляциях обретает финальное значение. прим: var N1 = 123;
мне нужно, чтобы значение этой переменной - передавалось в пхп файл отправки формы.
2. задача, с которой столкнулся. Можно ли переписать данный ниже пхп элемент, чтобы он перекидывал пользователя на страницу, после отправки формы?

имеется:
- скрипт проверки

JavaScript
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
<script>
   function checkForm(form) {
 
      var name = form.name.value;
      var n = name.match(/^[A-Za-zА-Яа-я ]*[A-Za-zА-Яа-я ]+$/);
      if (!n) {
         alert("Имя введено неверно");
         return false;
      }
 
      var phone = form.phone.value;
      var p = phone.match(/^[0-9+][0-9- ]*[0-9- ]+$/);
      if (!p) {
         alert("Телефон введен неверно");
         return false;
      }
 
      var mail = form.mail.value;
      var m = mail.match(/^[A-Za-z0-9][A-Za-z0-9\._-]*[A-Za-z0-9_]*@([A-Za-z0-9]+([A-Za-z0-9-]*
      [A-Za-z0-9]+)*\.)+[A-Za-z]+$/);
      if (!m) {
         alert("E-mail введен неверно");
         return false;
      }
      return true;
   }
</script>
-хтмл форма отпрарвки

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<form method="post" action="mail.php">
 
   <div class="left">
      <label for="name">Имя:</label>
      <input maxlength="30" type="text" name="name" />
 
      <label for="phone">Телефон:</label>
      <input maxlength="30" type="text" name="phone" />
 
      <label for="mail">E-mail:</label>
      <input maxlength="30" type="text" name="mail" />
   </div>
 
   <div class="right">
      <label for="message">Сообщение:</label>
      <textarea rows="7" cols="50" name="message"></textarea>
 
      <input type="submit" value="Отправить" />
   </div>
 
</form>
собственной сам пхп скрипт

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
   $back = "<p><a href=\"javascript: history.back()\">Вернуться назад</a></p>";
 
   if(!empty($_POST['name']) and !empty($_POST['phone']) and !empty($_POST['mail']) 
   and !empty($_POST['message'])){
      $name = trim(strip_tags($_POST['name']));
      $phone = trim(strip_tags($_POST['phone']));
      $mail = trim(strip_tags($_POST['mail']));
      $message = trim(strip_tags($_POST['message']));
 
      mail('мояпочта@bk.ru', 'Письмо с этой страницы сатаны', 
      'Вам написал: '.$name.'<br />Его номер: '.$phone.'<br />Его почта: '.$mail.'<br />
      Его сообщение: '.$message,"Content-type:text/html;charset=windows-1251");
 
      echo "Ваше сообщение успешно отправлено!<Br> Вы получите ответ в 
      ближайшее время<Br> $back";
 
      exit;
   } 
   else {
      echo "Для отправки сообщения заполните все поля! $back";
      exit;
   }
?>
Добавлено через 2 часа 40 минут
2. задача. Можно ли переписать данный ниже пхп элемент, чтобы он НЕ перекидывал пользователя на страницу, после отправки формы?

поправочка**
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.07.2017, 03:20
Ответы с готовыми решениями:

Передать переменную из js в php
Необходимо из main.js передать в php переменную &quot;TotalScore&quot; document.addEventListener('DOMContentLoaded',function initialize() { ...

Передать переменную в php-блок
Всем добрый день. Пишу сайт интернет-магазина. На главную страницу вывожу несколько товаров, чтобы не прописывать вывод каждого,...

Как передать значение переменной JS в переменную PHP?
Как передать значение переменной JS в переменную PHP? Можно и в сессионную переменную.

13
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
15.07.2017, 10:34
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
41
42
43
44
45
46
47
48
<form id="namephoneemail" method="post" action="mail.php">
 
   <div class="left">
      <label for="name">Имя:</label>
      <input maxlength="30" type="text" name="name" />
 
      <label for="phone">Телефон:</label>
      <input maxlength="30" type="text" name="phone" />
 
      <label for="mail">E-mail:</label>
      <input maxlength="30" type="text" name="mail" />
   </div>
 
   <div class="right">
      <label for="message">Сообщение:</label>
      <textarea rows="7" cols="50" name="message"></textarea>
 
      <input type="submit" value="Отправить" />
   </div>
 
</form>
 
<script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script>
$( document ).ready(function() {
    $('#namephoneemail').submit(function(e){
    //отменяем стандартное действие при отправке формы
    e.preventDefault();
    //берем из формы метод передачи данных
    var m_method=$(this).attr('method');
    //получаем адрес скрипта на сервере, куда нужно отправить форму
    var m_action=$(this).attr('action');
    // добавим поле N1
    $('#namephoneemail').append('<input type="hidden" name="N1" value="'+N1+'">');
    //получаем данные, введенные пользователем в формате input1=value1&input2=value2...,
    //то есть в стандартном формате передачи данных формы
    var m_data=$(this).serialize();
    $.ajax({
    type: m_method,
    url: m_action,
    data: m_data,
    success: function(result){
    alert(result);
    }
    });
    });
});
</script>
Добавлено через 7 минут
mail.php

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
<?php
   if(!empty($_POST['name']) and !empty($_POST['phone']) and !empty($_POST['mail']) 
   and !empty($_POST['message'])){
      $name = trim(strip_tags($_POST['name']));
      if (!preg_match('/^[A-Za-zА-Яа-я ]*[A-Za-zА-Яа-я ]+$/',$name)) {
        echo 'Имя введено неверно';exit;
      }
      $phone = trim(strip_tags($_POST['phone']));
      if (!preg_match('/^[0-9+][0-9- ]*[0-9- ]+$/',$phone)) {
        echo 'Телефон введен неверно';exit;
      }
      $mail = trim(strip_tags($_POST['mail']));
      if (!filter_var($mail, FILTER_VALIDATE_EMAIL)) {
        echo 'E-mail введен неверно';exit;
      }
      $message = trim(strip_tags($_POST['message']));
 
      mail('мояпочта@bk.ru', 'Письмо с этой страницы сатаны', 
      'Вам написал: '.$name.'<br />Его номер: '.$phone.'<br />Его почта: '.$mail.'<br />
      Его сообщение: '.$message,"Content-type:text/html;charset=windows-1251");
 
      echo "Ваше сообщение успешно отправлено!<Br> Вы получите ответ в 
      ближайшее время"; 
      exit;
   }
   else {
      echo "Для отправки сообщения заполните все поля! $back";
      exit;
   }
?>
0
0 / 0 / 1
Регистрация: 03.12.2011
Сообщений: 136
16.07.2017, 16:01  [ТС]
спасибо, перекидывать перестало, в плане отправки все работает нормально.
но с передачей переменной - ничего не понял (я почти не могу в пхп).

может неправильно сформулировал.

у меня есть js вычислялка:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function raschitat1() {
{
var W = $("input[name=WES]").val() * 1; 
var A = $("input[name=AGE]").val() * 1; 
var R = $("input[name=ROS]").val() * 1; 
 
var B = ((5 * W) + (6 * R) - (4 * A) * 3);
var S = B * 0.1;
var N1 = (B + S) * 2;
 
var N2 = Math.round(N1); 
document.getElementById('N2').innerHTML = "ответ "+ N2 ;
}
}
которая на основе введенных данных рассчитывает var N2;
хтмл зона - 3 поля ввода и кнопка расчета, которая выводит результат.

HTML5
1
2
3
4
5
<input type="text" name="W" >
<input type="text" name="A" >
<input type="text" name="R" >
<button onClick="raschitat1();">Рассчитать</button>
<div id="N2"></div>
мне этот ВЫЧИСЛЕННЫЙ результат, нужно отправить формой php на почту.
при этом, таких кнопок - будет несколько, вычисляющих различные результаты и в финале - всех их, разом нужно отправить на почту, вместе с введенным именем и тд.
(я к тому, что слышал о заборе данных из браузерной строки и в случае с несколькими данными - такой метод может не помочь).

т.е. в этот код надо как то предать значение N2 чтобы оно пришло на почту.

ниже - присланный вами - код mail.php (я немного изменил)
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
<?php
   if(!empty($_POST['name']) and !empty($_POST['phone'])){
      $name = trim(strip_tags($_POST['name']));
 
      
      $phone = trim(strip_tags($_POST['phone']));
      if (!preg_match('/^[0-9+][0-9- ]*[0-9- ]+$/',$phone)) {
        $echo2 = "телефон введен неверно";
        $echo2a =  iconv('windows-1251', 'UTF-8', $echo2);
        echo $echo2a;exit;
      }
      $mail = trim(strip_tags($_POST['mail']));
 
      $message = trim(strip_tags($_POST['message']));
      $mes1 = iconv('UTF-8', 'windows-1251', $message);
      $name1 = iconv('UTF-8', 'windows-1251', $name);
      mail('почта@bk.ru', 'Письмо с этой страницы сатаны', 
      'Вам написал: '.$name1.'<br />Его номер: '.$phone.'<br />Его почта: '.$mail.'<br />
      Его сообщение: '.$mes1,"Content-type:text/html;charset=windows-1251");
       
      
      $showinfo = "Ваше сообщение успешно отправлено! Вы получите ответ в 
      ближайшее время";
      $info1 = iconv('windows-1251', 'UTF-8', $showinfo);
     
      echo  $info1; 
      exit;
   }
   else {
      $showinfo2 = "Для отправки сообщения заполните все поля";
      $info2 = iconv('windows-1251', 'UTF-8', $showinfo2);
      echo $info2;
      exit;
   }
?>
может я чего то недопонял, но ваш код - присылает только данные с полей ввода.
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
16.07.2017, 19:53
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function raschitat1() {
{
var W = $("input[name=WES]").val() * 1; 
var A = $("input[name=AGE]").val() * 1; 
var R = $("input[name=ROS]").val() * 1; 
 
var B = ((5 * W) + (6 * R) - (4 * A) * 3);
var S = B * 0.1;
var N1 = (B + S) * 2;
 
var N2 = Math.round(N1); 
document.getElementById('N2').innerHTML = "ответ "+ N2 ;
$('#namephoneemail').append('<input type="hidden" name="N2" value="'+N2+'">');
}
}
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
<?php
   if(!empty($_POST['name']) and !empty($_POST['phone'])){
      $name = trim(strip_tags($_POST['name']));
 
      
      $phone = trim(strip_tags($_POST['phone']));
      if (!preg_match('/^[0-9+][0-9- ]*[0-9- ]+$/',$phone)) {
        $echo2 = "телефон введен неверно";
        $echo2a =  iconv('windows-1251', 'UTF-8', $echo2);
        echo $echo2a;exit;
      }
      $mail = trim(strip_tags($_POST['mail']));
 
      $message = trim(strip_tags($_POST['message'].' ответ N2='.$_POST['N2']));
      $mes1 = iconv('UTF-8', 'windows-1251', $message);
      $name1 = iconv('UTF-8', 'windows-1251', $name);
      mail('почта@bk.ru', 'Письмо с этой страницы сатаны', 
      'Вам написал: '.$name1.'<br />Его номер: '.$phone.'<br />Его почта: '.$mail.'<br />
      Его сообщение: '.$mes1,"Content-type:text/html;charset=windows-1251");
       
      
      $showinfo = "Ваше сообщение успешно отправлено! Вы получите ответ в 
      ближайшее время";
      $info1 = iconv('windows-1251', 'UTF-8', $showinfo);
     
      echo  $info1; 
      exit;
   }
   else {
      $showinfo2 = "Для отправки сообщения заполните все поля";
      $info2 = iconv('windows-1251', 'UTF-8', $showinfo2);
      echo $info2;
      exit;
   }
?>
0
0 / 0 / 1
Регистрация: 03.12.2011
Сообщений: 136
18.07.2017, 17:08  [ТС]
к сожалению ничего не происходит. приходит обычное письмо. без переменной

Добавлено через 46 минут
может как то влияет, что скрипт js находится в отдельном файле?
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
19.07.2017, 10:08
jquery добавь на страницу раньше остальных js файлов

HTML5
1
<script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
0
0 / 0 / 1
Регистрация: 03.12.2011
Сообщений: 136
19.07.2017, 15:53  [ТС]
вписано уже было ранее. полагаю что ошибка в mail.php, а конкретно в этой строке

PHP
1
$message = trim(strip_tags($_POST['message'].' ответ N2='.$_POST['N2']));
сделал такой вывод, поскольку поле с сообщением - не отправляется; и сразу после него - идет код отправки переменной.

наглядно можно тут посмотреть на все http://www.охотхозяйство-подгорное.рф/test/
0
0 / 0 / 1
Регистрация: 03.12.2011
Сообщений: 136
25.07.2017, 16:49  [ТС]
бамп..
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
27.07.2017, 19:24
проверь

PHP
1
2
3
$message = trim(strip_tags($_POST['message'].' ответ N2='.$_POST['N2']));
echo $message;
exit;
0
0 / 0 / 1
Регистрация: 03.12.2011
Сообщений: 136
27.07.2017, 19:43  [ТС]
N2=[object HTMLDivElement]

проблема на стороне js получается?
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
28.07.2017, 12:12
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function raschitat1() {
{
var W = $("input[name=WES]").val() * 1; 
var A = $("input[name=AGE]").val() * 1; 
var R = $("input[name=ROS]").val() * 1; 
 
var B = ((5 * W) + (6 * R) - (4 * A) * 3);
var S = B * 0.1;
var N1 = (B + S) * 2;
 
var N22 = Math.round(N1); 
document.getElementById('N2').innerHTML = "ответ "+ N22 ;
$('#namephoneemail').append('<input type="hidden" name="N2" value="'+N22+'">');
}
}
0
0 / 0 / 1
Регистрация: 03.12.2011
Сообщений: 136
28.07.2017, 16:17  [ТС]
не работает, все та же картина.
а если в php mail выводить .$_POST['N1'] или N22, то эхо вернет просто пустое поле
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
29.07.2017, 12:39
из страницы нужно убрать строку
JavaScript
1
$('#namephoneemail').append('<input type="hidden" name="N2" value="'+N2+'">');
Добавлено через 3 минуты
чтобы не проверять, добавлялось поле раньше, его лучше добавить сразу в форму и указать ему уникальный id

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<form id="namephoneemail" method="post" action="mail.php">
<input type="hidden" name="N2" value="" id="N2val">
   <div class="left">
      <label for="name">Имя:</label>
      <input maxlength="30" type="text" name="name" />
 
      <label for="phone">Телефон:</label>
      <input maxlength="30" type="text" name="phone" />
 
      <label for="mail">E-mail:</label>
      <input maxlength="30" type="text" name="mail" />
   </div>
 
   <div class="right">
      <label for="message">Сообщение:</label>
      <textarea rows="7" cols="50" name="message"></textarea>
 
      <input type="submit" value="Отправить" />
   </div>
 
</form>
Добавлено через 1 минуту
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function raschitat1() {
{
var WES = $("input[name=WES]").val() * 1; 
var AGE = $("input[name=AGE]").val() * 1; 
var ROS = $("input[name=ROS]").val() * 1; 
 
T = T * 1;
K = K * 1;
SEX = SEX * 1;
 
var BOO = ((9.99 * WES) + (6.25 * ROS) - (4.92 * AGE) + SEX);
var SDD = BOO * 0.1;
var N1 = (BOO + SDD) * K * T;
 
var N2 = Math.round(N1); 
 
$('#N2').text("Ваша норма: "+ N2 +" ккал в день");
$('#N2val').val(N2);
 
}
1
0 / 0 / 1
Регистрация: 03.12.2011
Сообщений: 136
30.07.2017, 02:14  [ТС]
PHP
1
      $message = trim(strip_tags($_POST['message'].' ответ N2='.$_POST['N2']));
а эту строчку в mail.php как менять? возвращает все так же - обжект хтмл

Добавлено через 9 часов 19 минут
все. я нашел в чем проблема. не работало из-за перевода частей текста в 1251.
все изначально вы правильно сказали. спасибо. закрывайте тему
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.07.2017, 02:14
Помогаю со студенческими работами здесь

Передать переменную js в php
У меня возникает один вопрос: Как передать переменную js в php? Читал много в интернете по этому вопросу, ни одного подходящего не нашёл....

Передать переменную из JS в PHP
Есть таблица в БД, куда попадают покупки пользователей, мне нужно эти покупки по клику на кнопку скачивать в таблицу csv, реализовал это...

Передать переменную PHP в JS
есть файл с кодом php и javascript пожалуйста, помогите передать языковую переменную PHP INPUT_CAPTCHA в Javascript &lt;?php ...

Передать переменную из PHP в JS
есть вот такой скрипт: function base64_to_jpeg( $base64_string, $output_file ) { $ifp = fopen( $output_file, &quot;wb&quot; ); fwrite(...

Передать переменную из php в функцию js
Прошу помочь, кто разбирается. Суть есть переменная $Pobn которая получается так:$Pobn = c(&quot;Form6-&gt;edit1&quot;)-&gt;text;, далее...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru