フォームのテキストボックスを使用して、ユーザーが最大10個のカテゴリを作成できるようにしています。これを行うために、name =cat[]のフォームに10個のテキストボックスがあります。初めてカテゴリに入るときは、受信側で最大10個まで、カテゴリの配列を収集し、挿入ステートメントを使用してカテゴリのテーブルに保存します。ここまでは順調ですね。
ただし、今は、設定済みのカテゴリを変更したり、合計10個まで追加したりしたいと思います。すでに設定されているカテゴリにはIDがあります。そのため、IDをカテゴリ名とともにフォームにエコーします。私の問題は、名前とIDを今どのように収集するかです。新しいものを挿入する必要があり、既存のものをテーブルで更新する必要があるかもしれませんか?どういうわけか、私はこれを行う方法を完全に失っています。これは私がこれまでに持っているものです>
テーブル猫
id | catname | userid
フォームページ:
//retrieve existing cats if any...also get catids
echo '<form action = storecats.php method=post>';
$i=1;
//Get all existing cats
while($row = mysql_fetch_array($res))
{
$catname = $row['catname'];
$catid = $row['id'];
echo '<input type = "text name="cat[]" value="'.$catname.'">Cat 1';
echo '<input type="hidden" name="id[]" value = "'.$catid.'">';
$i = $i+1;
}
//empty boxes up to ten.
while($i <= 10){
echo '<input type="text" size=18 name="cat[]" value=""> Cat '.$i.'<br>';
$i = $i+1;
}//end appending of blank categories
echo '<input type="submit" name="submit" value="submit"></form>';
受信側で、catとidの配列を収集できます。
$idarray = $_POST['id']; //there will be as many elements as there were ids
$catarray = $_POST['cat']; //there will be ten elements in array
IDがある場合は更新を実行し、IDがない場合は値が空白でない限り挿入します。
私の問題は、異なる配列で受信されているIDと猫の名前をリンクする方法がわからないことです。猫の名前は常に10個ありますが、そのユーザーの以前のテーブルにあったIDの数だけが存在することに注意してください。