Intereting Posts
Как отображать данные в моем foreach в EOD tcpdf? MYSQL Подсчитать все строки и разбиение на страницы данных с использованием диапазона / предела Библиотека PHP для создания / обработки текстовых файлов фиксированной ширины Многомерный массив PHP MYSQL Можно ли сохранить знаки плюса в PHP $ _GET без кодирования? Как перенаправить старые «уродливые» URL-адреса на seo-friendly? PDO Несколько запросов: транзакция фиксации и возврата PHP, MySQL – загружает около 100 тыс. Записей и экспортирует их в xml Добавление нескольких абонентов к конференц-вызову от вызывающего абонента Twilio Устранение неполадок "Предупреждение: session_start (): Не удается отправить ограничитель кеша сеанса – уже отправленные заголовки" Поиск строки Base64 в таблице MySQL с использованием PHP значения доступа к кодовому значению из внешних файлов Мягкий Удалить все записи из таблицы в laravel 5 PHP Переименовать имя файла, если оно существует. изменить locale symfony 2.3

Передайте значение флажка check и отобразите первое значение в массиве

Мне нужна помощь в моей php-программе.

У меня есть 2 формы внутри моего test.php

  • Основная форма, называемая «основной формой»,
  • другая форма с флажком с именем «modalForm»

Моя программа работает так. Если вы нажмете отключенное текстовое поле, появится модальный флажок, содержащий форму с флажком. Если только один из флажков был проверен, я собираюсь отобразить его в текстовом поле с отключенным текстовым полем, иначе если было проверено более 2, я покажу значение «Несколько» в отключенном текстовом поле.

Короче, я покажу только текстовую метку в пользовательском интерфейсе, в то время как ее значение будет вставлено / обновлено в системную базу данных.

Я пробовал много условий, и все же я не понимаю. кто-нибудь мне поможет.

Вот мой взгляд вроде кода

testing.php

<form method="post" name="mainform" action=""> <label>TestLabel</label> <a href="#modal"> <!-- when the input textbox was clicked, modal will pop up --> <input disabled type="text" name="test" placeholder="test" value=""> </a> </form> <form method="post" name="modalForm" id="modalForm" action="testing.php"> <div class="modalwrapper" id="modal"> <!-- modal --> <div class="modalcontainer"> <div class="modalcol1"> <label>Test 1</label> <input type="checkbox" name="test_modal[]" value="mark"> <div class="clear"></div> <label>Test 2</label> <input type="checkbox" name="test_modal[]" value="joe"> <div class="clear"></div> <label>Test 3</label> <input type="checkbox" name="test_modal[]" value="kevin"> <div class="clear"></div> <label>Test 4</label> <input type="checkbox" name="test_modal[]" value="michael"> <div class="clear"></div> <label>Test 5</label> <input type="checkbox" name="test_modal[]" value="jordan"> <div class="clear"></div> <div class="savebutton"> <input class="btn1" type="submit" value="Submit"/> </div> </div> </div> <div class="overlay"></div> </div> </form> 

styles.css

 /* modal layout */ .modalwrapper { top: 0; left: 0; opacity: 0; position: absolute; visibility: hidden; box-shadow: 0 3px 7px rgba(0,0,0,.25); box-sizing: border-box; transition: all .4s ease-in-out; -webkit-transition: all .4s ease-in-out; -moz-transition: all .4s ease-in-out; } .modalwrapper:target { opacity: 1; visibility: visible } .overlay { background-color: #000; background: rgba(0,0,0,.8); height: 100%; left: 0; position: fixed; top: 0; width: 100%; z-index: 1; } .modalcontainer { display: table; background-color: #777; position: relative; z-index: 100; color: #fff; padding: 5px; } .modalcol1 { display: table-cell; } .clear { clear: both; } .modalwrapper input[type=checkbox] { float: right; margin-right: 20px; } .savebutton input[type=submit] { float: right; background-color: maroon; color: #fff; border: none; padding: 5px 10px; margin-top: 5px; margin-right: 20px; } /* modal layout ends here */ 

Надеюсь, вы, ребята, можете мне помочь. Я хочу знать, как передать значение флажков на моей основной форме. Огромное спасибо заранее.

Я пробовал этот код, задал id = "submit" в кнопке submit модальной формы и id = "test_modal []" на флажках, я использовал некоторые функции jquery, которые я установил в заголовке <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

  <script type="text/javascript"> $(document).ready(function(){ $("#submit").click(function(e) { // var checked = []; i=0; temp="" $("input[name='test_modal[]']:checked").each(function () { temp=$(this).val(); i++; // checked.push($(this).val()); }); if (i==1) $("#test").val(temp); else if (i>1) $("#test").val('multiple'); $("#modal").fadeOut(); // alert($("#do").val()) e.preventDefault(); }); });</script> 

Вот пример для нескольких случаев, которые могут оказаться полезными для вашей проблемы.

Переменная PHP для переменной Javascript:

 <?php $myvar=10; ?> <script type="text/javascript"> jsvar = <?php echo $myvar; ?>; document.write(jsvar); // Test to see if its prints 10: </script> 

Переменная переменной переменной Javascript:

 <form name="myform4"> <input type="hidden" name="formvar" value="100"> </form> <script type="text/javascript"> jsvar = document.myform4.formvar.value; document.write(jsvar) // test </script> 

Переменная PHP для переменной формы:

 <form name="myform4"> <input type="hidden" name="formvar" value="<?php $phpvar=10; echo $phpvar; ?>"> // PHP code inside HTML!! </form> 

Переменная Javascript для переменной формы:

 <form name="myform3"> <!-- It needn't be a "hidden" type, but anything from radio buttons to check boxes --> <input type="hidden" name="formvar" value=""> </form> <script type="text/javascript"> jsvar=10; document.myform3.formvar.value = jsvar; </script> 

JavaScript: Вы можете решить эту проблему только с помощью JS. Для этого вам нужно заменить action -Attribute в form -Tag на action="#" . Чтобы узнать больше о хэштеге, найдите эту ссылку.

После этого вам нужно вызвать JS-функцию, когда форма будет отправлена. Вы можете сделать это, добавив onSubmit="countCheckboxes()" в <form> -Attribute. Это означает, что если форма будет отправлена, эта JS-функция будет выполнена. Теперь вам просто нужно создать новую JS-функцию, называемую countCheckboxes() . Там вы можете подсчитать выбранные флажки с помощью этой строки:

 alert(document.querySelectorAll('input[type="checkbox"]:checked').length); 

Проверьте, есть ли только один выбранный флажок или больше, и установите значение <input> .

Наконечник:

Получите значение только установленного флажка, вы должны перестроить свой HTML следующим образом:

 <label> Step 1 <input type="checkbox" ... /> </label> <label> Step 2 ... 

А затем получите (первый и единственный) текст в ярлыке с отмеченным полем следующим образом:

 document.querySelectorAll('input[type="checkbox"]:checked')[0].parentElement.textContent 

jQuery: Чтобы открыть и закрыть свой модальный, вы должны использовать JS. Я рекомендую вам использовать библиотеку jQuery (ознакомьтесь с этой статьей, чтобы узнать, как использовать jQuery в JS). При этом вы можете просто открыть и закрыть модальный с помощью .fadeIn () и .fadeOut () . На самом деле, здесь у нас есть другая проблема: обычно в jQuery вы можете проверить, было ли что-то нажато с помощью этого кода:

 $("#idOfYouElement").click(function() { // this code gets executed if the element got clicked }); 

Но в вашем случае input отключен и не запускает clickevent, и это приводит к тому, что .click() -Function также не выполняется. Чтобы исправить это, мы <div> на вход, который является прозрачным, чтобы пользователи его не видели. Затем мы добавляем .click() -функцию к этому div а не к input . Это будет выглядеть так:

HTML:

 <form method="post" name="mainform" action=""> <label>TestLabel</label> <input type="text" id="inpCheckboxes" name="test" placeholder="test" value="" disabled > </form> 

JavaScript:

 $("#inpCheckboxes").click(function(){ $("#idOfYourModal").fadeIn(); }); 

После этого мы должны закрыть модальный файл после нажатия кнопки отправки. Для этого есть несколько решений, для меня этот, использующий .submit() является самым чистым:

 $("#idOfYourForm").submit(function() { $("#idOfyourModal").fadeOut(); // Since your Modal is also your Form, you could also use here $(this).fadeOut(); }); 

Вы также хотите подсчитать все выбранные флажки. Вы можете комбинировать это с вашей функцией выше, поскольку вы хотите подсчитать флажки, когда пользователь нажимает «submit». JQuery-способ подсчета боксов:

 var l = $("input[type='checkbox']:checked").length; 

С помощью этого значения теперь вы можете использовать if else установить значение вашего <input> -Field (не забудьте удалить теперь disabled -Attribute из него).