2011-10-29 11 views
0

誰も私を正しい方向に向けることができますか?私は本当に混乱しています(私は初心者です:D)。 例:変数が配列に設定されているかどうかを確認しますか?

<form action="<?php $_server['php_self'] ?>" method=post> 
<table width="50%" style="border: 1px solid #999;" cellspacing="0" cellpadding="0"> 
    <tr> 
    <td width="35%"> 
     <input type="button" value="Add Subitem"> 
     <input type="button" value="Add Category"> 
    </td> 
    <td width="65%"> 
     <input type="hidden" name="row[]" value="1"> 
     <input type="text" name="categ[]" value="Sample Category" > 
    </td> 
    </tr> 
    <tr> 
    <td> 
     <input type="button" value="Add Subitem"> 
     <input type="button" value="Add Category"> 
    </td> 
    <td> 
     <input type="hidden" name="row[]" value="2"> 
     <input type="text" name="sub[]" value="Sample Subitem" > 
    </td> 
    </tr> 
    <tr> 
    <td> 
     <input type="button" value="Add Subitem"> 
     <input type="button" value="Add Category"> 
    </td> 
    <td> 
     <input type="hidden" name="row[]" value="3"> 
     <input type="text" name="categ[]" value="Sample Category" > 
    </td> 
    </tr> 
</table> 
<input type="submit" name="insBut" value="Save"> 
</form> 

行[]内でどのように反復処理できますか?その行にカテゴリまたはサブがあるかどうかを確認します。私はこの

$row = $_post['row']; 
$categ = $_post['categ']; 
$sub = $_post['sub']; 

for ($i=0;$i<count($row);$ii){ 
    if (isset($categ[$i])){ 
     $insQuery = pg_query("insert into rptdata_categ (blah blah) values (blah blah)"); 
    }elseif (isset($sub[$i])) { 
     $insQuery = pg_query("insert into rptdata_sub (blah blah) values (blah blah)"); 
    } 
} 

を試みたが、値が間違っている、私は

echo $row[$i]."=".$categ[$i]; 

でそれをエコーし​​ようとしましたが、それはあなたが考えてみれば、私はそのちょうど知っ

1=Sample Category 
2=Sample Category 
3= 

を与え、しかし、どうすればいいのですか?

1=Sample Category 
2= 
3=Sample Category 

ああ、私が忘れる前に、ユーザはカテゴリまたはサブアイテムを追加することができます。

+0

あなたは実際のコードで '$ i ++'を読んでいますか?もしそうでなければ、おそらくあなたの問題(たとえそれが解析されたとしても) – DaveRandom

+0

それはちょうどタイプミスでした:D – Gen

+0

それで、あなたはそれをコピー/貼り付けの代わりに再タイピングしましたか?わかりません。 – pguardiario

答えて

0

既に希望の行番号(row[])があるので、それをテキスト入力のnameに入れて、隠しファイルを完全に削除しないのはなぜですか?

<td> 
    <input type="text" name="categ[1]" value="Sample Category" /> 
</td> 
... 
<td> 
    <input type="text" name="sub[8]" value="Sample Subitem" /> 
</td> 

などです。次に、選択した配列インデックスにはすでに値が設定されています。

+0

私は何桁のフィールドがあるかわからない、それはちょうど例だった、ユーザーはどこに行を挿入することができ、それはcategorまたはsubとすることができます...あなたが2番目の行の "Add categ"をクリックすると、 1行目と2行目は基本的にユーザーがボタンをクリックすると、ユーザーがクリックした行の上に行が作成されます。 。 。 – Gen

0

空の配列フィールドは、最終配列には数えません。 sub[1]sub[2]のようなフィールドに行番号を追加するだけです。最初に何個のフィールドがあるか分かっているので、新しいフィールド(JS right?)に正しい行IDを付け加えることができます。あなたがvarを進めているボタンをユーザがクリックするたびに

関連する問題