0

クリックすると anotif の値を 0 に変更する JavaScript を作成したいと思います。

Approved:<?php if($anotif<1){
    echo 0;
} else { 
    echo '<a class="anotif" onClick="validator()" href="?anotif">'.$anotif.'</a>';
} ?><br/>

しかし、私はJavaScriptが初めてなので、どうすればよいかわかりません。少しグーグルで調べましたが、答えを見つけることができませんでした。

function validator(){
    if(document.anotif.clicked){ // I'm not really sure if this is correct.
        // if clicked, change value to zero
}

より正確には、一度クリックすると次のように表示されるようにしたい: From: Approved:3 To: Approved:0

Approved:<?php if($anotif<1){
    echo 0;
} else { 
    echo '<a class="anotif" onClick="validator()" href="?anotif">'.$anotif.'</a>';
} ?><br/>

このコードは、テーブル内のデータベースからいくつかのデータを表示するための ?anotif につながります。承認後:

  • をクリックすると、別のページに移動すると同時にゼロに設定する必要があります。

    問題は、システムによって 0 に設定されるためにリフレッシュが必要なことです。

    残りのコードは次のとおりです。

    $firstname =  getuserfield('txtFname');
    $lastname = getuserfield('txtLname');
    echo 'Hello '.$firstname.' '.$lastname.'.<br/>';
    
    $anotif = 0;
    $dnotif = 0;
    $anotif = $anotif + getuserfield('approved_notif');
    $dnotif = $dnotif + getuserfield('disapproved_notif');
    ?>
    <h3>Notifications:</h3>
    Approved:<?php if($anotif<1){echo 0;} else { echo '<a class="anotif" onClick="validator(this);" href="?anotif">'.$anotif.'</a>';}?><br/> //problem is over here
    <?php 
    if(isset($_GET['anotif'])) {
        $query = "SELECT * FROM hrf_leave WHERE empid = '$empid' AND formStatus = 1 AND checked = 0";
        $query_run = mysql_query($query) or die($query."<br/><br/>".mysql_error());
        echo "<table border=1>
        <tr>
        <th>Type of Leave</th>
        <th>Specific Reason</th>
        <th>Date From</th>
        <th>Date To</th>
        <th>Number of Days</th>
        </tr>";
        echo "<tr>";
        while($record = mysql_fetch_array($query_run)){ 
            $leave_id = $record['leave_id'];
            echo "<td>" . $record['type_of_leave'] . "</td>";
            echo "<td>" . $record['specific_reason'] . "</td>";
            echo "<td>" . $record['date_from'] . "</td>";
            echo "<td>" . $record['date_to'] . "</td>";
            echo "<td>" . $record['num_of_days'] . "</td>";
            echo "</tr>";
            $query2 = "UPDATE hrf_leave SET checked=1 WHERE leave_id = $leave_id";
            if($query_run2 = mysql_query($query2)){ 
                $anotif = 0;
                $query3 = "UPDATE hrms_emp_info SET approved_notif=$anotif WHERE empid = $empid";
                if($query_run3 = mysql_query($query3)){
                }
            }
        }
        echo "</table>";
    }
    ?>
    Disapproved:<?php if($dnotif<1){echo 0;} else { echo '<a href="?dnotif">'.$dnotif.'</a><br/>';} ?> //and here
    <?php
    if(isset($_GET['dnotif'])) {
        $query = "SELECT * FROM hrf_leave WHERE empid = '$empid' AND formStatus = 2 AND checked=0"; 
        $query_run = mysql_query($query);
        echo "<table border=1>
        <tr>
        <th>Type of Leave</th>
        <th>Specific Reason</th>
        <th>Date From</th>
        <th>Date To</th>
        <th>Number of Days</th>
        </tr>";
        echo "<tr>";
        while($record = mysql_fetch_array($query_run)){
            $leave_id = $record['leave_id'];
            echo "<td>" . $record['type_of_leave'] . "</td>";
            echo "<td>" . $record['specific_reason'] . "</td>";
            echo "<td>" . $record['date_from'] . "</td>";
            echo "<td>" . $record['date_to'] . "</td>";
            echo "<td>" . $record['num_of_days'] . "</td>";
            echo "</tr>";
            $query2 = "UPDATE hrf_leave SET checked=1 WHERE leave_id = $leave_id";
            if($query_run2 = mysql_query($query2)){ 
                $dnotif = $dnotif-1;
                $query3 = "UPDATE  hrms_emp_info SET disapproved_notif=$dnotif WHERE empid = $empid";
                if($query_run3 = mysql_query($query3)){ 
                }
            }
        }
        echo "</table>";
    }
    
  • 4

    1 に答える 1

    2

    次のようにアンカーを少し変更できます。

    <a class="anotif" onClick="return validator(this)" href="?anotif">
    

    次に、validator()関数を次のように変更します。

    function validator(element)
    {
        // element is clicked already, so you can change its value
    
        element.innerHTML = '0';
    
        // prevent click from changing page
        return false;
    }
    

    ただし、ここでの本当の問題は、ページが変更され、変更した?anotifものが無駄になることです。 クリックでページが変更されないようにして、数値を「0」に減らす方法でコードを更新しました。

    于 2013-02-21T23:44:20.740 に答える