这是一个显示表单的操作:从数组里面获取数据,然后用html的table显示出来。我在每一行的最后加了一个select list,希望通过手动选择,能够改变表单中某一列的值,并且传到后台,更新数据库。我已经获取到每一行的id,同时选择的值,但是在用$.ajax POST方法传递到"Test9.php"的时候,用echo 方法打印传递的数据,没有任何显示。是不是说明没有传递成功呢,应该怎么修改,求教各位!下面是具体的代码:
<?php
$testArray = array(
    array('0', 'name1', 'status1'),
    array('1', 'name2', 'status2')
);
?><html>
    <head>   
        <script type="text/javascript" src="JavaScript/jquery-1.6.2.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){
                $('select').change(function () {
                    var rowIdVal = $(this).attr('id'); 
                    var statusVal = $(this).val();                      
                    $.ajax({
                        type: "POST",
                        url: "Test9.php",
                        data: {status: statusVal, rowId: rowIdVal},                       
                        success: function(d){     
                            alert("It works");  
                            window.location = "Test9.php";
                        }
                    });                
                });
            });
            
        </script>
    </head>
    <body>
        <table id="dataTable">
            <tr>
                <td>Id</td>
                <td>name</td>
                <td>status</td>
            </tr>
            <?php
            for ($i = 0; $i < count($testArray); $i++) {
                echo '<tr>';
                for ($j = 0; $j < count($testArray[$i]); $j++) {
                    echo '<td>';
                    echo $testArray[$i][$j];
                    echo '</td>';
                }
                echo '<td>';
                echo "<select id='" . $testArray[$i][0] . "'>";
                echo "'<option value='0'>status1</option>";
                echo "'<option value='1'>status2</option>";
                echo '</select>';
                echo '</td>';
                echo '</tr>';
            }
            ?>
        </table>
    </body>
</html>

解决方案 »

  1.   

    是不是没有触发js onchange事件?你在js方法里加个alert()看看弹出吗?如果不弹出的话,那就是没有绑定上事件。js:
    <script>
    function _change(){
    var rowIdVal = $(this).attr('id');
    var statusVal = $(this).val();
    $.ajax({
    type: "POST",
    url: "Test9.php",
    data: {
    status: statusVal,
    rowId: rowIdVal
    },
    success: function(d){
    alert("It works");
    window.location = "Test9.php";
    }
    });
    }                
                    
    </script>
    echo "<select id='" . $testArray[$i][0] . "' onchange='_change()'>";改成这样试试