0

この問題を解決する方法を見つけるために、いくつかの非常に有益な投稿と情報を掘り下げた後、誰かが何かポインタを持っているかどうかを確認するために周りに尋ねようと思いました. さまざまな入力 (チェックボックス、テキスト ボックスなど) を含む html フォームがあります。各入力セクションには、独自の送信または「アップロード」ボタンがあります。アップロード時に、php スクリプトが呼び出され、データがパイプを介して Python スクリプトに送信される前に、さまざまな処理が行われます。私は現在、送信時に入力変数をフォームにエコーバックして、アップロードイベントで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 イベントが発生すると、テキスト ボックスに 'Array' と表示されます。フォーム内の他のテキスト入力をエコーバックするために作成した既存のコードを試しました (以下を参照)。これは機能しますが、これらは配列ではなく単一のエントリ用です。構文のさまざまな構成を試しましたが、常に同じ結果が得られるようです。

作業コード:

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

それは簡単なことだと確信していますが、私は何年もの間それをいじって見つめてきましたが、問題を見つけることができないようです.

4

1 に答える 1

0

配列型の変数を出力しようとしているため、「配列」を取得しています。

おそらく、フィールドに別の名前またはインデックスを付けて、次のようにしたいと思うでしょう:

<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 チェックを追加しただけです。)

于 2013-08-31T22:58:23.563 に答える