この質問に対する答えを広く検索しましたが、何も見つかりませんでした。
各行が新しいレコードである php と javascript を使用して、html テーブルの内容を mysql データベースに追加したいと考えています。
以下にテーブルの例を示します。
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<th scope="col">ID</th>
<th scope="col">NAME</th>
<th scope="col">EMAIL</th>
</tr>
<tr id="row">
<td><input name="ID" type="text" value="20" /></td>
<td><input name="NAME" type="text" value="Peter" /></td>
<td><input name="EMAIL" type="text" value="peter@gmail.com" /></td>
</tr>
<tr id="row">
<td><input name="ID" type="text" value="21" /></td>
<td><input name="NAME" type="text" value="Jhon" /></td>
<td><input name="EMAIL" type="text" value="jhon@yahoo.com" /></td>
</tr>
<tr id="row">
<td><input name="ID" type="text" value="22" /></td>
<td><input name="NAME" type="text" value="Mike" /></td>
<td><input name="EMAIL" type="text" value="mike@hotmail.com" /></td>
</tr>
</table>
<input name="Btn" type="button" onclick="addRecords()" value="Add"/>
</form>
そして、私が試したJavaScriptのサンプル:
<script>
function addRecords()
{
var row = document.getElementById("row")
for (x in row)
{
$.post="<? $insertSQL = sprintf("INSERT INTO accounts (acc_id, acc_name, acc_email) VALUES (%s, %s)",
GetSQLValueString($_POST['ID'], "integer"),
GetSQLValueString($_POST['NAME'], "text"),
GetSQLValueString($_POST['EMAIL'], "text"));
mysql_select_db($database_G3CSAdminControlPanel, $G3CSAdminControlPanel);
$Result1 = mysql_query($insertSQL, $G3CSAdminControlPanel) or die(mysql_error()); ?>"
}
}
</script>
上記が行うことは、テーブルの最後のレコードのみをデータベースに追加することです。私の問題はphpコードにあり、各入力は行だけでなく配列にも配置する必要があると思いますが、その方法はわかりません。
UPDATE 私が示したコードは、私がやろうとしていることのほんの一例です。実際の Web ページでテーブルを作成するスクリプトを使用しているため、行の ID は同じままにする必要があります。
基本的に私は次のことをしたいのですが、PHPで:
<script>
function addRecords()
{
var row = document.getElementById("row");
var n = 0;
var q = 0;
for (x in "row")
{
n++;
var code = document.getElementsByName("ID")[q].value;
var desc = document.getElementsByName("NAME")[q].value;
var price = document.getElementsByName("EMAIL")[q].value;
alert(code + ' ' + desc + ' ' + price);
q++;
}
alert('There is ' + n + ' rows in the table');
}
</script>
スクリプトは、各行の入力の値を返します。PHPで同様のことをしたいのですが、各行の入力からの値をデータベーステーブルのレコードとして追加します。
そのため、行ごとに Javascript アラートを実行する代わりに、PHP スクリプトを実行してその行のレコードを挿入する必要があります。