選択フィールド id="projects" を含むフォームがあり、変更すると (js を使用して) 非表示の選択フィールド 'タスク' が表示され、dB を照会して選択したプロジェクトのタスクが動的に入力されます。ユーザーは、選択した proj_id、task_id の組み合わせで更新される時間を入力できます。
echo '<div id="dynform"><div class="rowhours"><select id="projects" name="project">';
if(mysqli_num_rows($res)==0)
echo '<option>No Projects assigned</option>';
else{
echo '<option value="0">Project - Choose one</option>';
while (list($proj_id, $title) = mysqli_fetch_row($res))
{
echo "<option value=$proj_id>$title</option>";
}
}
echo '</select></div><input type="button" id="add"></div>';
<select name="task" class="tasks" onchange="showOther(this, 'new');" onmouseover="showOther(this, 'new');"></select><br>
function showOther(fieldObj, otherFieldID) //Function displays text box for creating a new task on Addhours.php
{ //for the selected project when "Enter New Task" option chosen
var fieldValue = fieldObj.options[fieldObj.selectedIndex].value;
var otherFieldObj = document.getElementById(otherFieldID);
otherFieldObj.style.visibility = (fieldValue=='other') ? '' : 'hidden';
return;
}
「行を追加」ボタンを追加すると、同じフォームが何度も生成されます。
<input type="button" value="Add Row" id="add">
jquery used to add rows: $(document).ready(function () {
$('#add').click(function () {
$('.rowhours').clone().appendTo('#dynform');
});
});
任意の行のプロジェクトを変更すると、すべての行のタスク選択フィールドが影響を受けます。これは、ID が同じであるためです。
問題は、それらに異なる ID を持たせ、jquery を使用して同じ方法で別々に使用できるようにする方法です。また、今のところ、if(isset($_POST['submit'])) を使用して更新するだけです。複数の行に何を使用できますか?
ここに実例がありますhttp://fracktal.in/tms/addhours.php
私は基本的に、jqueryを使用してアクセスする方法や、フォーム送信で投稿された値を取得してdBを更新する方法がわからないプロジェクト[]とタスク[]を探しています