我有这些html表单,jQuery和php代码。到目前为止,我设法使用jQuery将动态字段添加到表单中并将数据添加到Oracle数据库中。
code.html
<div id="dynamicForm">
<button id="" class="add" name="1"> + ADD ITEM</button>
<table id="">
<thead>
<tr>
<th>TEXT 1</th>
<th>TEXT 2</th>
<th>TEXT 3</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="text" class="" name="name1[]" value="" placeholder=""></td>
<td><input type="text" class="" name="name1[]" value="" placeholder=""></td>
<td><input type="text" class="" name="name1[]" value="" placeholder=""></td>
</tr>
</tbody>
</table>
</div>
</div>
Code.js
<script type="text/javascript">
function formFunc(id, name)
{
switch(name)
{
case "1":
return '<div id="dynamicFormA"><button id="" class="add" name="1">+ ADD ITEM</button><table id=""><thead><tr><th>TEXT 1</th><th>TEXT 2</th><th>TEXT 3</th></tr></thead><tbody><tr><td><input type="text" class="" name="name1[]" value="" placeholder=""></td><td><input type="text" class="" name="name1[]" value="" placeholder=""></td><td><input type="text" class="" name="name1[]" value="" placeholder=""></td></tr></tbody></table></div></div>';
break;
}
}
$(document).ready(function(e){
$(".add").click(function(e){
e.preventDefault();
var id = $(this).attr('id');
var name = $(this).attr('name');
$("#dynamicForm"+id).append(formFunc(id, name));
return false;
});
});
</script>
我设法使用for循环添加数据,如下所示。添加数据没有问题。
Code.php
<?php
// Running no
$sqlNextSeq = "SELECT SEQ_TABLE.nextval AS RUNNO FROM DUAL";
$stid2 = oci_parse($ociconn,$sqlNextSeq);
oci_execute($stid2);
$row = oci_fetch_array($stid2, OCI_RETURN_NULLS);
$application_no = $row["RUNNO"];
// Running no
// Data added
for ( $i=0; $i<count($_POST["name1"]); $i++ )
{
if($_POST['name1'][$i] != '' || $_POST['name2'][$i] != '' || $_POST['name3'][$i] != '' )
{
$sql = "INSERT INTO TABLE (
ID,
TEXT1,
TEXT2,
TEXT3
)
VALUES(
'".$application_no."',
'".$_POST["name1"][$i]."',
'".$_POST["name2"][$i]."',
'".$_POST["name3"][$i]."'
)
";
$stid = oci_parse($ociconn,$sq);
oci_bind_by_name($stid);
$res = oci_execute($stid);
if($res){ echo "Added<br/>";} else { echo "Not added<br/>";}
}
}
// Data added
?>
但是当数据添加到数据库中时,顺序不正确。
预计序列将是这样
ID TEXT1 TEXT2 TEXT3
1 NAME1 ADDRESS1 CONTACT1
2 NAME2 ADDRESS2 CONTACT2
3 NAME3 ADDRESS3 CONTACT3
但是在Oracle中像这样添加了数据。
ID TEXT1 TEXT2 TEXT3
3 NAME3 ADDRESS3 CONTACT3
1 NAME1 ADDRESS1 CONTACT1
2 NAME2 ADDRESS2 CONTACT2
顺便说一下,这是我的表格,序列和触发器
序列
CREATE SEQUENCE "DEV"."SEQ_TABLE" MINVALUE 0 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 NOCACHE NOORDER NOCYCLE;
触发
create or replace TRIGGER DEV.TRG_TABLE
BEFORE INSERT ON DEV.TABLE FOR EACH ROW
BEGIN
SELECT SEQ_TABLE.NEXTVAL INTO :NEW.ID FROM DUAL;
END;
请帮助我解决此问题。预先感谢。
答案 0 :(得分:1)
选择数据时遇到的问题,请按ID顺序选择
select * from table order by ID asc