本帖最后由 aborry 于 2011-07-20 23:49:40 编辑

解决方案 »

  1.   

    是这样的,对于checkbox控件,选中状态时才会提交数据;对于文本框,就算不输入任何东西,也会提交表单数据(值为空字符串)。建议你这样处理:默认情况下,给所有的文本框控件加上disabled属性(<input  type="text" name="title[]" value="这是标题1" disabled="disabled">),点击checkbox控件后,使得同行的文本框切换为可用状态或禁用状态。<html> 
    <head> 
    <style   type= "text/css "> 
    {behavior:url(#default#VML);} 
    </style><script type="text/javascript">
    window.onload = function() {
    var chk = document.getElementsByTagName('input');
    for(var i = 0; i < chk.length; i ++) {
    if (chk[i].type == 'checkbox') {
    chk[i].onclick = function() {
    var o = this.parentNode.parentNode.getElementsByTagName('input');
    for (var j = 0; j < o.length; j ++) {
    if (o[j].type != 'checkbox') {
    if (o[j].disabled) o[j].disabled = false;
    else o[j].disabled = true;
    }
    }
    }
    }
    }
    }
    </script>
    </head><body> <form action="post.php" method="post">
    <table  border="1" bordercolor="#0ec517"  rules="rows" frame="hsides">
    <tr>
        <td>
            <input id="1" type="checkbox" name="selectedIds[]" value="1">
        </td>
        <td>
            <img src="image/pr.jpg" height="65" width="55">
            <input type="hidden" name="image[]" value="image/pr.jpg" disabled="disabled">
        </td>
        <td>
            <div >
                <p><input  type="text" name="title[]" value="这是标题1" disabled="disabled"><input  type="submit" value="改" disabled="disabled"></p>
                关键词:<input  type="text" name ="key[]" value="" size="8" disabled="disabled">
            </div>
        </td>
    </tr><tr>
        <td>
            <input id="2" type="checkbox" name="selectedIds[]" value="2">
        </td>
        <td>
            <img src="image/pr.jpg" height="65" width="55">
                    <input type="hidden" name="image[]" value="image/pr.jpg" disabled="disabled">
        </td>
        <td>
            <div >
                <p><input  type="text"  name="title[]" value="这是标题2" disabled="disabled"><input  type="submit" value="改" disabled="disabled"></p>
                关键词:<input  type="text" name ="key[]" value="" size="8" disabled="disabled">
            </div>
        </td>
    </tr><tr>
        <td>
            <input id="3" type="checkbox" name="selectedIds[]" value="3" >
        </td>
        <td >
            <img src="image/pr.jpg" height="65" width="55">
                    <input type="hidden" name="image[]" value="image/pr.jpg">
        </td>
        <td >
            <div >
                <p><input  type="text"  name="title[]" value="这是标题3" ><input  type="submit" value="改" ></p>
                关键词:<input  type="text" name ="key[]" value="" size="8">
            </div>
        </td>
    </tr><tr>
        <td>
            <input id="4" type="checkbox" name="selectedIds[]" value="4" >
        </td>
        <td >
            <img src="image/pr.jpg" height="65" width="55">
                    <input type="hidden" name="image[]" value="image/pr.jpg">
        </td>
        <td >
            <div >
                <p><input  type="text"  name="title[]" value="这是标题4" ><input  type="submit" value="改" ></p>
                关键词:<input  type="text" name ="key[]" value="" size="8">
            </div>
        </td>
    </tr>
    <input  type="submit" value="提交" >
    </table></form><fieldset>
    <legend>健康信息:</legend>
    <form>
    <label>身高:<input name="egg" type="text" /></label>
    <label>体重:<input type="text" /></label>
    <label>提交:<input type="submit" value="提交"/></label>
    </fieldset>
    </body>
    </html>
      

  2.   

    你的php程序$i是从0开始的。再按数字顺序排。所以拿出来的永远是以1开始的内容。跟着就是2.
      

  3.   

    看了一下 大慨知道你说的是啥,应该就是传递的时候Id 错位了吧.给你一个建议
    将test.htm 改成test.php 循环输出table的内容 并且给每个name 赋值Id例如 for (xxxxx){
    echo '<input name="xxx'.$i.'" type="text" value="" />';
    echo '<input name="key".$i.' type="text" value=""'/>';
    }.post 过去
    返回来就应该是正确的内容了.
    其实这种修改内容的 最好用的就是ajax/js了.
      

  4.   

    for($i=0;$i<count($checkbox);$i++)
    这里有问题。应该是拿checkbox内容,然后,根据这个内容找相关的资料。
      

  5.   

    echo "<td class=tabval><img src=".$image[$checkbox[$i]-1]." width=55 height=65></td>";
    其余类似$checkbox[$i] 才是相应的 checkbox 的值,-1 才对应文本框序号
      

  6.   

    建议使用AJAX来提交类似这种表单,提交前使用JAVASCRIPT进行过滤操作,只提交选中的多选框值