Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.03.2017, 12:28
Аспирант
Отправить личное сообщение для phenix79 Посмотреть профиль Найти все сообщения от phenix79
 
Регистрация: 19.12.2011
Сообщений: 40

Передать параметр из метода prompt в форму отправки
Добрый день, подскажите пожалуйста кто-нибудь.
У меня есть форма отправки
<form id="createInterview" method="POST" action="create_interview.php">
    <input type="hidden" name="hidden" value="">
    <p>Ваше имя: <input type="text" name="name" /></p>

    <p><input type="submit" id="send" /></p>
</form>


и есть JS функция которая вызывается при нажатии определенной клавиши
function Send() {
           var opros = prompt('Создайте имя опроса');
               if (opros != null) {
                  var doc= document.getElementsByName('hidden');
                  doc.value = opros.value;
                  document.getElementById('createInterview').submite();
               } else {

                  Send();
               }
           }


Как видно выше в форме имеется скрытый инпут
<input type="hidden" name="hidden" value="">

в котором атрибут value="" пустое.

Вопрос, как можно перед отправкой формы передать в параметр атрибута value="введенный текст из prompt" введенный текст, из метода PROMPT?
Пытался сделать как написано выше, но не получается, подскажите пожалуйста, как это сделать?
Ответить с цитированием
  #2 (permalink)  
Старый 10.03.2017, 13:27
Профессор
Отправить личное сообщение для Manyasha Посмотреть профиль Найти все сообщения от Manyasha
 
Регистрация: 21.09.2015
Сообщений: 196

phenix79, здравствуйте.
getElementsByName возвращает коллекцию.
var doc = document.querySelector("#createInterview>[name='hidden']")

Последний раз редактировалось Manyasha, 10.03.2017 в 13:40.
Ответить с цитированием
  #3 (permalink)  
Старый 10.03.2017, 13:37
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от phenix79
var doc= document.getElementsByName('hidden');
Если больше элементов с таким именем нет - сойдет и так

var doc= document.getElementsByName('hidden')[0];
Ответить с цитированием
  #4 (permalink)  
Старый 10.03.2017, 15:16
Аспирант
Отправить личное сообщение для phenix79 Посмотреть профиль Найти все сообщения от phenix79
 
Регистрация: 19.12.2011
Сообщений: 40

Сообщение от Manyasha Посмотреть сообщение
phenix79, здравствуйте.
getElementsByName возвращает коллекцию.
var doc = document.querySelector("#createInterview>[name='hidden']")
При отправке формы выдал вот это 'hidden' has 'undefined'((
Ответить с цитированием
  #5 (permalink)  
Старый 10.03.2017, 15:18
Аспирант
Отправить личное сообщение для phenix79 Посмотреть профиль Найти все сообщения от phenix79
 
Регистрация: 19.12.2011
Сообщений: 40

Сообщение от ksa Посмотреть сообщение
Если больше элементов с таким именем нет - сойдет и так

var doc= document.getElementsByName('hidden')[0];
Выдает при отправке 'hidden' has 'undefined'
php обработчик получает через $_POST 'undefined'
Что может быть?

Последний раз редактировалось phenix79, 10.03.2017 в 15:20.
Ответить с цитированием
  #6 (permalink)  
Старый 10.03.2017, 15:52
Профессор
Отправить личное сообщение для Manyasha Посмотреть профиль Найти все сообщения от Manyasha
 
Регистрация: 21.09.2015
Сообщений: 196

phenix79,
doc.value = opros.value;
Ответить с цитированием
  #7 (permalink)  
Старый 10.03.2017, 16:39
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от phenix79
Что может быть?
У меня все работает...
<form id="createInterview" method="POST" action="create_interview.php">
    <input type="hidden" name="hidden" value="Test!">
    <p>Ваше имя: <input type="text" name="name" /></p>
    <p><input type="submit" id="send" /></p>
</form>
<script type='text/javascript'>
var o=document.getElementsByName('hidden')[0];
alert(o.value);
</script>

Твой пример, где это не работает, я еще не видел...
Ответить с цитированием
  #8 (permalink)  
Старый 10.03.2017, 18:54
Аспирант
Отправить личное сообщение для phenix79 Посмотреть профиль Найти все сообщения от phenix79
 
Регистрация: 19.12.2011
Сообщений: 40

Спасибо, вот код файла
create_interview.php
<?php
if(isset($_POST['name']) && isset($_POST['hidden']))
$name = $_POST['name'];
$hidden = $_POST['hidden'];

    foreach($_POST as $key => $value)
        echo "POST parameter '$key' has '$value'"."<br>";


а это код файла demo.html
<!DOCTYPE html>
<html>
<head>
    <script src="jquery-3.1.1.js"></script>
    <meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />
    <style type='text/css'>
        #MyForm > label {
            display: flex;
        }
        #MyButton {
            border-color: #008a77;
            margin-left: 500px;
            width: 200px;
            height: 50px;
        }

        #MyButton2 {
            border-color: #008a77;
            margin-left: 30px;
            width: 200px;
            height: 50px;
        }

        #MyButton3 {
            border-color: #008a77;
            margin-left: 30px;
            width: 200px;
            height: 50px;
        }
        /*#SendButton {display: none;}
        #MyButton2 {display: none;}*/
    </style>
    <script type='text/javascript'>
        function myQuestion() {
            document.getElementById('SendButton').style.display = 'flex'
            document.getElementById('MyButton2').style.display = 'inline'
            var ol = document.createElement("label");
            var txt = document.createElement("textarea");
            var i=document.querySelectorAll('#MyForm textarea').length;
            ol.innerHTML='Вопрос '+(i+1);
            txt.name='Question'+i;
            ol.appendChild(txt);
            document.getElementById('MyForm').appendChild(ol);
        }

        function myAnswer() {

            var ol2 = document.createElement("label");
            var txt = document.createElement("textarea");
            var i=document.querySelectorAll('#MyForm textarea').length;
            ol2.innerHTML='Ответ '+(i+1);
            txt.name='Answer'+i;
            ol2.appendChild(txt);
            document.getElementById('MyForm').appendChild(ol2);
        }
       function Send() {
           var opros = prompt('Создайте имя опроса');
               if (opros != null) {
                  //var doc= document.getElementsByName('hidden');
                   //var doc= document.getElementsByName('hidden')[0];
                   var doc = document.querySelector("#createInterview>[name='hidden']")
                  doc.value = opros.value;
                  document.getElementById('createInterview').submite();
               } else {

                   Send();
               }
           }





    </script>
</head>
<body>
<p>Click the button to make a BUTTON element.</p>
<button onclick="myQuestion()" id="MyButton">Вопрос</button>
<button onclick="myAnswer()" id="MyButton2">Ответ</button>
<button id="MyButton3" form="createInterview" onclick="Send()">Создать опрос</button>

<form id="MyForm" action="elements.php" method="post"><button id="SendButton">Отправить</button></form>
<form id="createInterview" method="POST" action="create_interview.php">
    <input type="hidden" name="hidden" value="">
    <p>Ваше имя: <input type="text" name="name" /></p>

    <p><input type="submit" id="send" /></p>
</form>
</body>
</html>
Ответить с цитированием
  #9 (permalink)  
Старый 10.03.2017, 19:12
Аспирант
Отправить личное сообщение для phenix79 Посмотреть профиль Найти все сообщения от phenix79
 
Регистрация: 19.12.2011
Сообщений: 40

Сообщение от Manyasha Посмотреть сообщение
phenix79,
doc.value = opros.value;
Спасибо большое , нужно действительно было написать просто переменную opros без value теперь все работает.
Очень помогли все!!
Спасибо всем!!!

Последний раз редактировалось phenix79, 11.03.2017 в 11:14.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать товар из таблицы в форму всплывающего окна? sprint007 Элементы интерфейса 3 03.12.2014 16:04
Передать параметр при ajax rafaello AJAX и COMET 5 10.04.2014 11:25
как из js передать параметр в html wins Общие вопросы Javascript 6 22.12.2013 15:56
Можно ли передать файл из формы в форму? vuler Общие вопросы Javascript 3 01.03.2012 12:42
Передать параметр из фрейма SenseyR Общие вопросы Javascript 2 11.04.2011 14:00