jQuery更新不起作用

时间:2014-04-16 08:37:34

标签: php jquery ajax

我正在设计此代码并且它不起作用。任何人都可以帮助我吗?

jQuery:

$('.cuttingCheckbox').change(function() {
    if (this.checked) {
        $.post(
            'process_class.php', 
            { 
                headmark : $($row[HEAD_MARK]).val(), 
                headmark_id : $($row[ID]).val()
            },
            function(response){ 
                this.setAttribute("disabled", true), alert(headmark, headmark_id); 
            }
        ); 
    } 
});

和代码,

$sql = "SELECT * FROM FABRICATION WHERE FABRICATION.HEAD_MARK = '{$_POST["hm"]}'";
$query = oci_parse($conn, $sql);
$query_exec = oci_execute($query);
while($row = oci_fetch_assoc($query)) {
    echo "<table border='1'>";
    echo '<table cellspacing = "0"';
        echo '<thead>';
            echo '<tr><th>Head Mark/ID</th>
                    <th>Cutting</th>
                    </tr></thead>';

        echo "<tbody>";
            echo "<tr><td><b>$row[HEAD_MARK]/$row[ID]</b></td>";

            if ($row['CUTTING'] == 'Y') {                                   
                //echo "<td><input type='checkbox' id='cuttingCheckbox'  name='cuttingCheckbox' checked='checked' disabled='disabled'/></td>";
                echo "<td><img src='../images/fabDone.png' width='30' height='30'></td>";                                             
            } else {
                echo "<td><input type='checkbox' class='cuttingCheckbox'  name='cuttingCheckbox'/></td>";
            }   

            echo "</tr>";
        echo "</tbody>";
        echo "<table cellspacing = '0'";
    }
echo "</table>";

传递process_class.php只是处理$row[HEAD_MARK]$row[ID]来更新数据库。我不知道如何将$row[HEAD_MARK]$row[ID]传递给jQuery。请帮帮我

1 个答案:

答案 0 :(得分:1)

你的问题可能出现在这个jquery语句中

{ headmark : $($row[HEAD_MARK]).val(), 
     headmark_id : $($row[ID]).val()
}

你可以用jquery来解释你试图从HTML dom树获得的值。

因为你必须使用#if你想要获取值的字段使用jquery具有相同名称的id属性。

所以尝试如下:

{ headmark : $('#<?php echo $row[HEAD_MARK]?>').val(), 
         headmark_id : $('#<?php echo $row[ID]?>').val()
    }

如果字段由id标识。

编辑:

将您的PHP代码行更改为:

echo "<td><input type='checkbox' data-headmark=".$row['HEAD_MARK']." data-id=".$row['ID']." class='cuttingCheckbox'  name='cuttingCheckbox'/></td>";

并且:

将您的jQuery代码行更改为:

{ headmark : $(this).data('headmark'), 
             headmark_id :  $(this).data('id')
        }

另外:

确保在process_class.php脚本更新中查询应该在head_mark周围引用,如果它是varchar类型,如下所示:

"UPDATE FABRICATION_QC SET CUTTING = 'Y'
    WHERE HEAD_MARK = '".$_POST["headmark"]."' AND ID = ".$_POST["headmark_id"].";"

现在应用这三个更改,然后重试。