2013-10-30 35 views
0

哎我有一張表只有一行.... 我需要在我的表中添加一個按鈕來添加另一行, 後者當用戶點擊提交所有表格數據時應該輸入數據庫。 我已經創建了一個單行表,它可以很好地將數據輸入到數據庫中,任何請幫助我修改我的代碼以具有添加行功能並提交將數據輸入數據庫。我的Html和PHp文件如下。請幫忙 !Html動態表

<form name="myForm" 
     method="post" 
     action="to_db.php" 
     onSubmit="alert('YOUR REQUEST HAS BEEN RECEIVED.');" > 

<TABLE BORDER=0>  
    <TR> 
     <TD>Department</TD> 
     <TD> 
      <select name="department"> 
       ... 
      </select> 
     </TD> 
     <TD>Date Submitted</TD> 
     <TD><input type="date" name="bday" /></TD> 
    </TR> 
    <TR> 
     <TD>Requested by</TD> 
     <TD><INPUT type=text name="reqby" /></TD> 
     <TD>priority</TD> 
     <TD> 
      <select name="priority"> 
       ... 
      </select> 
     </TD> 
    </TR> 
    <TR> 
     <TD>Description Of Change:</TD> 
     <TD><textarea name="doc" id="doc" cols="25" rows="3"></textarea></TD> 
    </TR> 
    <TR> 
     <TD>Bussiness Impact Of Change:</TD> 
     <TD> <textarea name="boc" id="doc" cols="25" rows="3"></textarea></TD> 
    </TR> 
</TABLE> 

<table class="dynatable1"> 
    <thead> 
      <tr> 
       <th>Bussiness Process Impacted</th> 
       <th>Tools Used/System Impacted</th> 
       <th>Bussiness Driver description</th> 
       <th>Impact category</th> 
      </tr> 
     </thead> 

     <tbody> 
      <tr> 
       <td><textarea name="v1" cols="30" row="1" id="demo3" value=""></textarea></td> 
       <td><textarea name="v2" cols="50" rows="2" id="demo1" value="" /></textarea></td> 
       <td><textarea name="v3" cols="50" rows="2" id="demo2" value="" /></textarea></td> 
       <td> 
        <select name="v4"> 
         ... 
        </select> 
       </td> 
      </tr> 
     </tbody> 
    </table> 

<input name ="printbtn" type="image" src="submit.jpg" class="submit" value="SUBMIT" >    
</form> 

我的PHP文件如下:

$dbhandle= mysql_connect($hostname,$username,$password) or die("Unable to connect to database"); 

$selected = mysql_select_db("form",$dbhandle) or die("could not select the database"); 

$val1 = $_POST['crno']; 
$val2 = $_POST['department']; 
$val3 = $_POST['bday']; 
$val4 = $_POST['reqby']; 
$val5 = $_POST['priority']; 

if(isset($_POST['doc'])) 
{ 
    $dec_of_change = $_POST['doc']; 
} 
if(isset($_POST['boc'])) 
{ 
    $bus_of_change = $_POST['boc']; 
} 
if(isset($_POST['v1'])) 
{ 
    $variable_string1 = $_POST['v1'];  
} 
if(isset($_POST['v2'])) 
{ 
    $variable_string2 = $_POST['v2']; 
} 
if(isset($_POST['v3'])) 
{ 
    $variable_string3 = $_POST['v3'];  
} 
if(isset($_POST['v4'])) 
{ 
    $variable_string4 = $_POST['v4']; 
} 

if (
    $val2 == "" || 
    $val3 == "" || 
    $val4 == "" || 
    $val5 == "" || 
    $dec_of_change == "" || 
    $bus_of_change == "" || 
    $variable_string1 == "" || 
    $variable_string2 == "" || 
    $variable_string3 == "" 
) { 
    echo "Fill the entire form "; 
    header("Location: fill.html"); 
    } 

else { 
    $sql=" INSERT INTO  fill1 (
           department, date, reqby, 
           priority, doc, boc, 
           bpi, tu, bd, ic 
          ) 
      VALUES (
           '$val2', '$val3', '$val4', 
           '$val5', '$dec_of_change', '$bus_of_change', 
           '$variable_string1', '$variable_string2', '$variable_string3', '$variable_string4' 
          )"; 
    $result=mysql_query($sql); 
    header("Location: startpage.html"); 

mysql_close($dbhandle); 
} 
+0

你熟悉HTML,PHP或JavaScript?你的代碼並不表示(即你需要多少幫助?)。你試過什麼了? – Eamonn

+0

嘿Eamonn,我是一個新手PHP和HTMl ..我剛剛創建了一個示例,如果它可能爲你,只需拿起我的代碼,並添加「addrow」功能的HTML和添加多行數據庫PHP PHP, – Brayan

+0

你不能「向html添加addrow功能」。你需要爲此使用Javascript。不要聽起來太苛刻,但是,鑑於你原來的代碼中存在的錯誤,我感到驚訝,它現在還在工作,沒有做任何進一步的事情。你的HTML標籤沒有關閉,有多餘的開始標籤,你的PHP使用現在不推薦的mysql_語法。我並不是故意拒絕你,但我認爲你現在正在通過處理Javascript來推動馬匹。專注於獲得您的權利,然後轉到動態表格。 – Eamonn

回答

0

如果添加一個按鈕,一個TD行內可以複製的行,並使用類似的東西添加到表:

// Helper function 
function upTo(el, tagName) { 
    el = el && el.parentNode; 
    tagName = tagName.toLowerCase(); 

    for (;el; el = el.parentNode) { 
    if (el.tagName && el.tagName.toLowerCase() == tagName) { 
     return el; 
    } 
    } 
    return null; 
} 

// Row cloning function 
function cloneRow(el) { 
    var newRow; 
    var row = el && upTo(el, 'tr'); 

    if (row) { 
    newRow = row.cloneNode(true); 
    row.parentNode.appendChild(newRow); 
    } 
} 

請注意,您在HTML中已經有重複的ID,這會創建更多。重複的名字很好。

你可能會做表:

<table> 
    ... 
    <tr> 
    ... 
    <td><button type="button" onclick="cloneRow(this)">Add a row</button> 
    ... 
</table> 
+0

感謝Rob RobG ...這讓我鬆了一口氣......非常感謝你......只有一件事,用戶進入並填充形式......當他提交它應該進入數據庫(檢查PHP文件),現在我需要一個循環,將動態數據輸入到數據庫中。 – Brayan

+0

這是服務器端代碼,有人用PHP可以解答。 – RobG

+0

,但你可以告訴我,當創建一個新行時...就像在這種情況下創建一個新的文本框,它的名字是什麼,我應該如何訪問它,可能用於驗證條目 – Brayan