我正在设计此代码并且它不起作用。任何人都可以帮助我吗?
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。请帮帮我
答案 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"].";"
现在应用这三个更改,然后重试。