在提交时将$array[]元素回显到html表单


echo back $array[] elements to html form on Submit

经过大量挖掘一些信息丰富的帖子和信息,试图找出如何解决这个问题,我想我会四处询问,看看是否有人有任何建议。我有一个html表单,里面有各种输入(复选框、文本框等)。每个输入部分都有自己的提交或上传按钮。在Upload中,会调用一个php脚本,并在数据通过管道发送到Python脚本以获取更多内容之前完成各种处理。我目前正在提交时将输入变量回显到表单,这样html页面就不会在Upload事件中刷新(或者我应该说输入的数据不会丢失给用户视图),但是,我现在必须对一堆复选框和文本框执行同样的操作,这些复选框的值存储在一个数组中。到目前为止,我写的代码如下(我对php和html都是新手,所以请原谅我确信效率低下的问题)

html/php-

<margin>CH1</margin><input type="checkbox"name="ANout[]"value="AN1_OUT"
<?php if(in_array('AN1_OUT',$_POST['ANout']))echo'checked';?>>
Voltage<input type="text"size="5"name="ANout[]"
value="<?php $ANout[$i]=$_POST['ANout'];
if(!empty($ANout[$i]))echo"$ANout[$i]";?>">
<br>

上面的代码适用于在按下Upload按钮后愉快地保留的复选框,但不适用于数组。当Upload事件发生时,我只需在文本框中写入"Array"。我已经尝试过我编写的现有代码来回显表单中的其他文本输入(见下文),这些代码有效,但这些代码只用于条目,而不是数组。我尝试过各种语法配置,但似乎总是得到相同的结果。

工作代码:

<margin>Duty Cyle</margin><input type="text"name="PWM1DC"size="3"
value="<?php $PWM1DC = $_POST['PWM1DC']; 
if(!empty($PWM1DC))echo "PWM1DC";?>">
<br>

我确信这是一件简单的事情,但我已经摆弄和盯着它看了很长时间,似乎找不到问题所在。

您得到的是"Array",因为您正试图打印出Array类型的变量。

您可能希望为字段提供单独的名称或索引,并执行以下操作:

<form method="post">
   <input type="checkbox" name="ANout[1]" value="AN1_OUT"
         <?php if(isset($_POST['ANout']) && in_array('AN1_OUT',$_POST['ANout']))echo'checked';?>>
   Voltage<input type="text"size="5"name="ANout[2]"
         value="<?php if(isset($_POST['ANout']) && !empty($_POST['ANout'][2])) echo $_POST['ANout'][2]; ?>">
   <input type="submit" value="ok">
</form>

(刚刚添加了表单标记、提交按钮和isset检查以显示工作示例。)