如何发布已禁用的输入

时间:2014-04-10 13:44:04

标签: php post input disabled-input

您好我有一些输入,但其中一个被禁用(是的,我需要它为我的时间表)但我怎么把它发送autocmplete.php到insert.php我有这个错误未定义索引:客户端在C:第30行\ wamp \ www \ testlp \ insert.php

这里是我的代码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

4 个答案:

答案 0 :(得分:53)

使用属性readonly代替disabled

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

您收到错误,因为在提交表单时未发送已禁用的元素,因此在$_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的语法。

答案 1 :(得分:2)

这里是您如何解决此问题的想法

if(!empty($_POST['var1']) && !empty($_POST['var2']) && !empty($_POST['var3']) && !empty($_POST['var4'])):
/*and then assign all the POST values to a $DATA array as you want.*/
$DATA['var1'] = $_POST['var1'];
$DATA['var2'] = $_POST['var2'];/* and so on..*/
endif;

您甚至可以从第一个输入中删除名称。
这样,您的禁用输入仍将显示,但是php会将值发布到您的隐藏输入字段中。

您可以使用     $query = "update mytable set verify = 'yes' where number ='900'"; $result = $conn->query($query); if (!$result){ $json_out = "[" . json_encode(array("result"=>0)) . "]"; } else { $json_out = "[" . json_encode(array("result"=>1)) . "]"; } echo $json_out; 来填充<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> 字段,如此处的一些答案所示

答案 2 :(得分:0)

如果您希望它被禁用,因此它不会在数据库中更改,那么您不必POST它。使用SELECT填充package main import ( "fmt" "os/exec" "sync" ) func main() { cmd := "./foo.sh" //Arguments to get passed to the command args := []string{"bar", "baz"} //Common Channel for the goroutines tasks := make(chan *exec.Cmd, 64) //Spawning 4 goroutines var wg sync.WaitGroup for i := 0; i < 4; i++ { wg.Add(1) go func(num int, w *sync.WaitGroup) { defer w.Done() var ( out []byte err error ) for cmd := range tasks { // this will exit the loop when the channel closes out, err = cmd.Output() if err != nil { fmt.Printf("can't get stdout:", err) } fmt.Printf("goroutine %d command output:%s", num, string(out)) } }(i, &wg) } //Generate Tasks for i := 0; i < 10; i++ { tasks <- exec.Command(cmd, args...) } close(tasks) // wait for the workers to finish wg.Wait() fmt.Println("Done") } 并添加属性“disabled”。

<input>

答案 3 :(得分:-4)

client1没有任何价值。请添加类似

的内容
value="TEST"

输入。

echo $_POST['client1']; // TEST

编辑: 删除session_start();你为什么要使用它?