Как опубликовать отключенный ввод

Здравствуйте, у меня есть некоторый ввод, но один из них отключен (да, и он мне нужен для моего табеля), но как мне отправить его autocomplete.php в insert.php У меня есть эта ошибка Неопределенный индекс: client1 в C:\wamp\ www\testlp\insert.php в строке 30

Вот мой код autocomplete.php

<form action = 'insert.php' method="post"  >

    <input type="text" name="client1" class = "client" size="12" id ="client1" disabled />

        </form>

здесь мой код insert.php

    session_start(); 
    $date = $_POST['data'] ;
    $client1 = $_POST['client1'] ;

    echo($client1);
    echo($date);

ИЗМЕНИТЬ Я пробовал это:

<input type="text" name="client1" class = "client" size="12" id ="client1"readonly />

вот ошибка: Notice: Undefined index: client1 in C:\wamp\www\testlp\insert.php on line 12


person Thephpdoge    schedule 10.04.2014    source источник
comment
Почему его нужно отключить? Я думаю, что вы не можете заставить это работать с disabled в нем   -  person putvande    schedule 10.04.2014
comment
Вместо этого вы можете попробовать использовать readonly. из disabled   -  person Lix    schedule 10.04.2014
comment
То же самое с @Lix см. stackoverflow.com/questions/4727974/ для получения дополнительной информации   -  person user1477388    schedule 10.04.2014
comment
я могу попробовать только чтение, но мне нужно, чтобы в этот ввод можно было писать, но мне не нужно отправлять его в мою вставку. Наконец, как мне поступить с моей ошибкой?   -  person Thephpdoge    schedule 10.04.2014
comment
Но почему, если вы хотите, чтобы ваш пользователь мог что-то с ним делать, его нужно отключать или только читать?   -  person putvande    schedule 10.04.2014
comment
так что я объясню, у меня есть 3 входа номер, клиент, описание. Когда я ввожу что-то в число и нажимаю ввести мой полевой клиент, и описание завершено. Вот почему клиент и описание должны быть заблокированы. И после того, как я нажму конец, мне нужно отправить клиента, описание и номер для вставки страницы.   -  person Thephpdoge    schedule 10.04.2014
comment
Попробуйте добавить value="<?php echo $client1; ?>" или value="<?php echo $_POST['client1']; ?>", это должно помочь; работал на меня. @Thephpdoge   -  person Funk Forty Niner    schedule 10.04.2014
comment
Я не понимаю, где я это добавляю?   -  person Thephpdoge    schedule 10.04.2014
comment
Добавьте его рядом с <input type="text" name="client1" @Thephpdoge То есть: <input type="text" name="client1" class = "client" size="12" id ="client1" value="<?php echo $_POST['client1']; ?>" readonly /> -или- <input type="text" name="client1" class = "client" size="12" id ="client1" value="<?php echo $client1; ?>" readonly />   -  person Funk Forty Niner    schedule 10.04.2014
comment
Здесь ошибка с этим кодом code <input type="text" name="client1" class = "client" size="12" id ="client1"readonly value="<?php echo $_POST['client1']; ?>"/> ‹br /›‹font size='1'›‹table class='xdebug-error xe-notice' dir='ltr' border='1' cellpacing='0' cellpadding='1 '›‹tr›‹th align='left' bgcolor='#f57900' colspan= Примечание: Неопределенный индекс: client1 в C:\wamp\www\testlp\autocomplete.php в строке 177   -  person Thephpdoge    schedule 10.04.2014
comment
Вам нужно опубликовать наиболее релевантный код в своем вопросе и указать, как вы получаете данные, которые будут вставлены в ваше поле только для чтения. Я проверил все, что мог, с небольшой информацией, которую вы дали. Мне нечем тебе помочь.   -  person Funk Forty Niner    schedule 10.04.2014
comment
Я отредактирую через 1 минуту   -  person Thephpdoge    schedule 10.04.2014
comment
Я добился успеха с isset, потому что моя форма неверна   -  person Thephpdoge    schedule 10.04.2014
comment
Отлично, тогда проблема решена. @Thephpdoge   -  person Funk Forty Niner    schedule 10.04.2014
comment
Если вы приняли ответ только потому, что не отразили фактическое решение, вы должны были сами опубликовать ответ и принять его, как только SO позволит вам. Делая то, что вы сделали, это не дает и не поможет никому, кто посетит этот вопрос в будущем. @Thephpdoge   -  person Funk Forty Niner    schedule 10.04.2014
comment
Я нажимаю на Ричарда Векера, потому что это действительно помогает моему коду, и вот как я решил   -  person Thephpdoge    schedule 10.04.2014
comment
Вы сказали в комментарии У меня успех с isset, потому что моя форма неверна @Thephpdoge, что тогда помогло решить проблему?   -  person Funk Forty Niner    schedule 10.04.2014


Ответы (4)


используйте ответ от cypherabe: https://stackoverflow.com/a/22990008/2780941

person RiWe    schedule 10.04.2014
comment
потому что я попробовал кое-что, и я удаляю это сейчас, но ничего не меняется, что меня огорчает :( - person Thephpdoge; 10.04.2014
comment
Хотя это исправит одну проблему (нет значения!), это не ответ. В вашем вводе следует использовать readonly плюс значение (см. ответ cypherabe) - person tomsihap; 22.11.2016
comment
изменить действительный ответ, это не - person Edu; 04.07.2019

используйте атрибут readonly вместо disabled.

  • только для чтения: ввод не может быть изменен
  • отключено: ввод не имеет функции формы
  • (и соответствующий третий вариант: тип ввода = скрытый: ввод не отображается, но значение отправляется)

вы получаете сообщение об ошибке, потому что отключенный элемент не отправляется при отправке формы и, следовательно, отсутствует в $_POST (в вашем случае просто нет $_POST['client1'])

редактировать отредактировано: примеры были неполными - как говорится в принятом ответе, атрибут name тоже должен присутствовать

 <input type="text" name="client1" class = "client" size="12" id ="client1" value="something" readonly />

or

 <input type="text" name="client1" class = "client" size="12" id ="client1" value="something" readonly="readonly" />

если вы хотите иметь более похожий на xml синтаксис.

person cypherabe    schedule 10.04.2014
comment
Должно быть что-то еще не так с вашим кодом. readonly должно работать именно так. - person putvande; 10.04.2014
comment
что именно не работает? - вы уверены, что написали атрибут имени и индекс $_POST одинаково? ты перезагрузил страницу? - person cypherabe; 10.04.2014
comment
вы видели ошибку в моем редактировании и моем коде, и да, я перезагружаю - person Thephpdoge; 10.04.2014
comment
Если вы хотите, чтобы отключенное поле выглядело хорошо для пользователя, добавьте класс CSS с именем .readonlyinput и установите цвет #999999 или аналогичный, а затем примените его к вводу. - person KingOfAllTrades; 18.08.2020
comment
ваш код неверен. Это атрибут readOnly (не только для чтения), значения true/false (не только для чтения). - person qkx; 30.08.2020

Вот идея, как вы можете решить эту проблему

<form action = 'insert.php' method="post"  >
  <input type="text" name="client1" class="client" size="12" id="client1" disabled />
  <input hidden name="client1" value="inserted_value_of_client1"/>
</form>

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

Вы можете использовать <?php echo !empty($text)?$text:'';?> для заполнения полей value, как показано в некоторых ответах здесь.

TLDR;

<form action="index.php" method="post">
  <input type="text" disabled  value="my_value"/>
  <input hidden name="client" value="my_value"/>
</form>
person TimeTrax    schedule 16.01.2019
comment
здесь value=inserted_value_of_client1/› означает значение =‹?php $_POST['client1']?› верно? - person User0434; 16.04.2019
comment
зависит от. значение = 6, значение = значение токена, независимо от того, как вы заполняете это значение, зависит от разработчика. поэтому значение может быть получено из php (на стороне сервера), значение может быть получено из javascript, значение может быть жестко запрограммировано. Вопрос здесь в том, как перенести это значение ОТ КЛИЕНТА на сервер. выполнение $_POST['client1'] означает, что вы перемещаете значение FROM THE SERVER (php)/backend в client(ui)/html/javascript. На момент вопроса: нам все равно, как ценность дошла до клиента. Нас интересует только передача от клиента к серверу. - person TimeTrax; 03.06.2019
comment
просто и эффективно :) - person vieroli; 18.09.2019

Если вы хотите, чтобы он был отключен, чтобы он не менялся в БД, вам не нужно его POST. Используйте SELECT, чтобы заполнить <input> и добавить атрибут «отключено».

<?php
if ( !empty($_POST)) {
$other_inputs= $_POST['other'];

$valid = true;
if (empty($text)) {
    $valid = false;
}

if ($valid) {
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = "UPDATE table set text = ? WHERE id = ?";
    $q = $pdo->prepare($sql);
    $q->execute(array($other_inputs,$id);
}
} else {
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = "SELECT * FROM table where id = ?";
    $q = $pdo->prepare($sql);
    $q->execute(array($id));
    $data = $q->fetch(PDO::FETCH_ASSOC);
    $text = $data['client1'];
}
?>
<form action = 'insert.php' method="post"  >
    <input type="text" name="client1" class = "client" size="12" id ="client1" disabled vlaue="<?php echo !empty($text)?$text:'';?>" />
</form>
person Suren    schedule 25.10.2016
comment
Но они хотят опубликовать это. - person Mark Fisher; 27.08.2019
comment
Я не понимаю, как это решает вопрос. - person Mark Fisher; 28.08.2019