HTML テーブルで PHP を使用して MySQL データを表示しようとしています。行は現在クリック可能であり、チェックボックスはデータからの数値をテキストボックスに入れ、チェックボックスをオンにするたびに追加します。
これを維持したいのですが、行をシングルクリックすると、ボックスがチェックされ、テキストボックスに数値が入力されます(テキストボックスがチェックされている場合と同様)
行をダブルクリックすると、新しい Web ページが開きます。
ここに私の現在のPHPコードがあります:
<script>
function correctNumber(number) {
return (parseFloat(number.toPrecision(12)));
}
function add(total, this_chk_bx) {
var thetotal = (form2.thetotal.value * 1);
var total = total * 1;
if (this_chk_bx.checked == true) {
//add if its checked
form2.thetotal.value = correctNumber(thetotal + total);
} else {
//subtract if its unchecked
form2.thetotal.value = correctNumber(thetotal - total);
}
}
</script>
<form name="form2">
<table width="100%" border="0" cellspacing="0" cellpadding="10">
<tr>
<td colspan="6"><form action="../">
<select name="status" onchange="window.open(this.options[this.selectedIndex].value,'_top')">
<option value="?status=" <?php if($_GET["status"] == '') { echo 'selected="selected"'; } ?>>Not Paid</option>
<?php
$sql2="SELECT * from billing_pdf_archive where status <> '' group by status ";
$rs2=mysql_query($sql2,$conn) or die(mysql_error());
while($result2=mysql_fetch_array($rs2))
{
echo ('<option value="?status='.$result2['status'].'"');
if(($_GET['status']) == ($result2['status'].''))
{
echo (' selected ');
}
echo ('>'.$result2['status'].'</option>');
}
?>
</select>
</form>
</tr>
<tr>
<td width="20"> </td>
<td width="150"><strong><?php echo $invoicenumber_link; ?></strong></td>
<td width="250"><strong><?php echo $company_link; ?></strong></td>
<td width="100"><strong><?php echo $date_link; ?></strong></td>
<td width="100"><strong><?php echo $total_link; ?></strong></td>
<td width="100"> </td>
</tr>
<?php
$rs=mysql_query($sql,$conn) or die(mysql_error());
while($result=mysql_fetch_array($rs))
{
$counter++;
$sql2="SELECT * from customer where sequence = '".$result["customer_sequence"]."' ";
$rs2=mysql_query($sql2,$conn) or die(mysql_error());
$result2=mysql_fetch_array($rs2);
$sql3="SELECT * from reseller where sequence = '".$result["reseller_sequence"]."' ";
$rs3=mysql_query($sql3,$conn) or die(mysql_error());
$result3=mysql_fetch_array($rs3);
if($result["customer_sequence"] != '0')
{
$company = $result2["company"];
}
elseif($result["reseller_sequence"] != '0')
{
$company = '<strong>Reseller: </strong>'.$result3["company"];
}
$total = $result["total"];
$date = date("d/j/Y",strtotime($result['datetime']));
echo '<tr class="notfirst" style="cursor:pointer;" onclick="document.location=\'editinvoice.php?seq='.$result["sequence"].'&inv='.$result["invoice_number"].'\'">
<td width="20"><input type="checkbox" name="check'.$counter.'" id="check'.$counter.'" onclick=\'add('.$total.', this);\' /></td>
<td width="150">'.$result["invoice_number"].'</td>
<td width="250">'.$company.'</td>
<td width="100">'.$date.'</td>
<td width="100">£'.$result["total"].'</td>
<td width="100">£'.$result["total"].'</td>
</tr>';
}
?>
<tr>
<td colspan="6"> </td>
</tr>
<tr>
<td colspan="6"> </td>
</tr>
</table>
<div class="div-bottom">
<table width="100%" border="0" cellspacing="0" cellpadding="10">
<tr>
<td> </td>
<td><strong>Total: </strong><input type="text" name="thetotal" value="0" /></td>
<td><strong>VAT:</strong> </td>
</tr>
</table>
</div>
</form>
これを回避する最善の方法はありますか?