問一個笨問題!!!回傳值

edited 十月 2013 in Javascript
這資料表的內容只有id跟name而已
echo "<table name='name' border=1>";
 while ($row = mysql_fetch_array ($result)) {
 echo "<tr>";
 echo "<td><input type=button id='btn' value=".$row['fruit']." onclick='chk(addTr(".$row['id']."),name(".$row['id'].")'/> </td>" ;
 echo "</tr>"; }
 echo "</table>";
if (num+1>max){ alert("列數最多"+max+"列");}
else{
num++;
d.innerHTML=name(arg)
r.appendChild(d);
d = document.createElement("td");
d.innerHTML="<input name='amount' type='text' />"
r.appendChild(d);
d = document.createElement("td");
d.innerHTML="<input name='standard' type='text' />"
r.appendChild(d);
d = document.createElement("td");
d.innerHTML="<input name='weight' type='text' />"
r.appendChild(d);
d = document.createElement("td");
d.innerHTML="<input type='button' value='刪除該列' style='width:70px' onClick='DelRow()'>" r.appendChild(d);
d = document.createElement("td");
} }
小弟現在有兩個問題點
1、當按鈕按下並新增欄位時,只能傳出"id"這值,那有沒有辦法,當按下時就傳出"name"的值?
2、傳出這個"name"的值,能不能就直接讓我放入表單,直接讓我新增到資料表裡?


原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=6969

評論

  • edited 十月 2012
    也許你需要說明的清楚一點
  • edited 十月 2012
    抱歉。
    主要這是做按鈕跟動態表格的東西。
    第一個問題:
    php這段主要卡在chk()這裡,若我把id換成fruit的話,該新增的欄位會是空白的。
    我想到應該是字串的問題,但我試不成。結果我在js那用switch做回傳過去。
    但想把switch這塊省掉,可以的話直接輸出該按鈕的東西。

    第二個問題:
    我還是回到"輸入欄位"去處理。

    主要是卡在第一點。
    結果弄一弄,我還搞不定多筆新增還有行數限制的部份(真是失敗)。
  • edited 十月 2012
    1. 你需要看清楚 addTr() 這個 javascript function 的內容,看樣子它第一個參數要求 id ,如果你要改成 fruit 就需要修改 addTr() 來配合

    2. name 的部份把 weight 之類的改成 weight[] 之後,試著把表單送出的內容印出來看看吧

    基本上看起來你想要做的事情都可以做到,但你描述問題的方式真的有點難理解,加上你給的程式碼片段並沒有包含關鍵的 addTr() 完整內容
  • edited 十月 2012
    要人幫忙就把資料po齊全
    你以為"有問題"的地方真有問題自己就debug掉了,還需要幫忙?
    別人就算想幫,整個function沒頭有尾
    誰知道之前做了哪些?缺少的又是哪些??
  • edited 十月 2012
    $qt = "SELECT * FROM fruit";
    $result = mysql_query($qt)or die("查詢錯誤: " . mysql_error()); 
    echo "<table name='name' border=1>"; 
    while ($row = mysql_fetch_array ($result)) { 
    echo "<tr>"; 
    echo "<td><input type=button id='btn' value=".$row['fruit']." onclick='chk(".$row['id']."),addTr(".$row['id']."),name(".$row['id']."),clickCount()'/></td>" ; echo "</tr>"; } echo "</table>";
    ?>
    </div> <div id="show"> <form action="" method="post"> <table border="1" id="table1" width="735"> <tr> <td colspan="5"><div id="HT">進貨紀錄</div></td> </tr> <tr> <td>種類</td> <td>數量</td> <td>規格</td> <td>斤數</td> <td width="70"><input id="btn" name="button" type="submit" value="儲存" /></td> </tr> </table> </form> </div>
    
    function chk(arg){
    	document.getElementById("dv1").innerHTML = arg;
    }
    function addTr(arg){ 
    var num=2; 
    var max=12; 
    if (num+1>max){ 
    alert("列數最多"+max+"列");//檢查列數上限 }
    else{ 
    num++; 
    var table = document.getElementById("table1");//取得table objec 
    var tObj = table.tBodies[0]; 
    var row = document.createElement("tr");//產生一列 
    var cell = document.createElement("td");//產生一欄 
    cell.innerHTML="<input name='name[num]' type='text' value="+name(arg)+ ">"//設定欄位內容
    row.appendChild(cell);//將欄位塞進剛剛產生的列中 
    <!--區段分隔--> 
    cell = document.createElement("td");//再產生一欄 
    cell.innerHTML="<input name='amount[]' type='text' />" 
    row.appendChild(cell); <!--區段分隔--> 
    cell = document.createElement("td"); 
    cell.innerHTML="<input name='standard[]' type='text' />" 
    row.appendChild(cell); <!--區段分隔--> 
    cell = document.createElement("td"); 
    cell.innerHTML="<input name='weight' type='text' />" 
    row.appendChild(cell); <!--區段分隔--> 
    cell = document.createElement("td"); 
    cell.innerHTML="<input type='button' value='刪除該列' style='width:70px' onClick='DelRow()'>" 
    row.appendChild(cell); <!--區段分隔--> 
    tObj.appendChild(row);//將列塞進表格中 
     } }
    
    對不起,我把事情想的太簡單化了,造成幾位的困擾不好意思...
    補上現在做到的程式碼,再麻煩一下。
  • edited 十月 2012
    看到這種混亂而且沒有組織又需要大量重構的code。
    我只有一句話:打掉重練。
  • edited 十月 2012
    嗯,我想這應該不是你寫的吧,而你應該也還沒看懂程式的脈落

    基本上只要把 name(arg) 換成 arg ,你就可以將參數改為 fruit ,但如果有其它地方已經使用了 addTr() ,你就需要做對應的修改,或是等待使用者的尖叫聲出現 :)

    你需要的是加強對 javascript 的熟悉度,因為你的問題都出在基本語法與概念
  • edited 十月 2012
    瞭解意思了,大致上知道該怎麼做了。謝謝。
Sign In or Register to comment.