如何发布禁用的输入

2022-08-30 21:24:41

你好,我有一些输入,但其中一个被禁用了(是的,我需要它作为我的时间表)但是我如何自动发送它.php插入.php我有这个错误未定义的索引:C中的客户端1:\wamp\www\testlp\insert.php在第30行

这是我的代码自动完成.php

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

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

        </form>

这是我的代码插入.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


答案 1

使用该属性而不是 。readonlydisabled

  • 只读:无法修改输入
  • 已禁用:输入没有表单功能
  • (以及相关的第三个选项:输入类型=隐藏:输入不可见,但值已提交)

您会收到错误,因为在提交表单时不会发送禁用的元素,因此不存在(在您的案例中根本没有)$_POST$_POST['client1']

编辑编辑:示例不完整 - 正如接受的答案所述,属性也必须存在name

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

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

如果你想有一个更像xml的语法。


答案 2

这是一个如何解决这个问题的想法

<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>

推荐