Arhn - архитектура программирования

Получить значение ввода, где установлен флажок []

У меня проблема, мне нужно получить значение ввода (текста), когда его флажок установлен.

<form method=GET>

<input type =checkbox name = checkbox[]>
<input type = 'text' name=? >

<input type =checkbox name = checkbox[]>
<input type ='text' name=? >

<input type =checkbox name = checkbox[]>
<input type = 'text' name=? >

<input type = 'submit' name='Submit' >

</form> 

Это то, что я хочу именно

If(checkbox == checked)
{
Echo the entered input text value
}

Заранее спасибо.

12.03.2015

Ответы:


1

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

Он также будет работать с <input type=checkbox name="c[]">, но немного опасается синхронизации текста и флажков с массивом.

HTML

<form action="./chkbx.php" method=GET>
<input type=checkbox name="c1" value="1"/>
<input type="text" name="t1" />
<input type=checkbox name="c2" value="2"/>
<input type="text" name="t2" />
<input type=checkbox name="c3" value="3"/>
<input type="text" name="t3" >
<input type="submit" name='Submit' />
</form>

PHP

foreach ($_GET as $key => $val){
  $chk[substr($key,0,1)] = intval(substr($key,1,1));
  $txt[substr($key,0,1)][intval(substr($key,1,1))] = $val;
}
echo '<h2>Text=' .  $txt['t'][$chk['c']] . '<h2>'; 

Тестовый код

<?php
echo <<<EOT
<!DOCTYPE html>
<html lang="en"><head><title>Menu Test</title><meta name="viewport" content="width=device-width, initial-scale=1.0" />
<style type="text/css">
</style></head><body>

<form action="./chkbx.php" method=GET>
<input type=checkbox name="c1" value="1"/>
<input type="text" name="t1" />
<input type=checkbox name="c2" value="2"/>
<input type="text" name="t2" />
<input type=checkbox name="c3" value="3"/>
<input type="text" name="t3" >
<input type="submit" name='Submit' />
</form>
EOT;
foreach ($_GET as $key => $val){
  $chk[substr($key,0,1)] = intval(substr($key,1,1));
  $txt[substr($key,0,1)][intval(substr($key,1,1))] = $val;
}
echo '<h2>' .  $txt['t'][$chk['c']] . '<h2>';
echo '<pre>';
var_export($chk);
echo"-------------------\n";
var_export($txt);
echo '</pre></body></html>';

Результаты:

С установленным флажком c2 и текстовыми полями, содержащими "Текст 1", "Текст 2", "Текст 3"

Тестовая страница

Ниже вывод из echo '<h2>Text=' . $txt['t'][$chk['c']] . '<h2>';

Текст два

$chk (
  't' => 3,
  'c' => 2,
  'S' => 0,
)-------------------
$txt (
  't' => 
  array (
    1 => 'Text One',
    2 => 'Text Two',
    3 => 'Text Three',
  ),
  'c' => 
  array (
    2 => '2',
  ),
  'S' => 
  array (
    0 => 'Submit',
  ),
)

Резюме:

Отправленное значение флажка хранится в $chk['c']
Отправленный текст находится в $txt['t'][0], $txt['t'][2], $txt['t'][3] с уважением.

Таким образом, текст может быть получен с помощью $txt['t'][$chk['c']

Цикл и эхо выполняются за 0,000054 секунды 54 микросекунды, не так уж и плохо.

12.03.2015
  • Но я получаю значения флажка из базы данных? Я не могу использовать n1, n2 12.03.2015
  • Он поместит текстовое значение в $text. Если установлен флажок c1, $text будет иметь значение ввода текста t1. Выложу результаты своего тестирования. 12.03.2015
  • Это то, что вы ищете? 12.03.2015

  • 2

    Флажок и поле типа радио не отправляются, если они не отмечены или не выбраны.

    Поэтому вам нужно проверить объект get/request, есть ли имя флажка в объекте или нет.

    Нравиться

    if(isset($_GET['checkbox'])){
    
    }
    
    12.03.2015

    3

    Когда вы отметите checkbox, вы можете получить значение следующего поля ввода.

    $("input:checkbox").change(function(){
        if(this.checked){
           alert($(this).next("input").val());
        }
    });
    

    Демо

    12.03.2015
  • Спасибо за ваши вопросы, но мой вопрос не в том, чтобы получить значение флажка, или когда он установлен, я использую там цикл foreach. Я хочу получить следующее входное текстовое значение отмеченного флажка с помощью PHP 12.03.2015

  • 4

    Значение флажка возвращает только логическое значение (т. е. истинное или ложное). Вы должны использовать

    if(isset($_GET["checkbox"]))
    

    вместо

    if(checkbox == checked)
    
    12.03.2015
    Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..