使用表

时间:2015-08-13 11:55:33

标签: javascript php html ajax checkbox

我在选择选项(我使用ajax)后在网站上显示一个表,并从数据库中获取数据。我想要做的是在我的表中插入一个复选框,当它被选中时删除数据库中的行。我不想使用提交按钮,只有复选框才能删除它。

我对ajax和JavaScript并不是很好。这是代码:

选择:

<p>
            <label for="client">Veuillez choisir le fournisseur :</label><br />
               <select name="client" id="client" onchange="showUser(this.value)">
                    <?php 
                        // echo '<option value=""/></option>';
                        while ($donnees = $reponse->fetch())
                        {               
                            echo '<option value='.$donnees['refCustomer'].'>'.$donnees['legalCompanyName'].' </option>';                                
                            //$value = $donnees['refCustomer'];                     
                        }


                        $reponse->closeCursor();
                    ?>              
               </select>
            </p>

剧本:

    <script>
    function showUser(str) {
        if (str == "") {
            document.getElementById("txtHint").innerHTML = "";
            return;
        } else { 
            if (window.XMLHttpRequest) {
                // code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp = new XMLHttpRequest();
            } else {
                // code for IE6, IE5
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange = function() {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
                }
            }
            xmlhttp.open("GET","getTableBuffer.php?q="+str,true);
            xmlhttp.send();
        }
    }
    </script>

getTableBuffer.php:

    <?php
    $q = intval($_GET['q']);

    try
    {
        $bdd = new PDO());
    }
    catch (Exception $e)
    {
            die('Erreur : ' . $e->getMessage());
    }

    $reponse = $bdd->query('select * from vendor_'.$q.'_offers_ncli_amendments_buffer');


    echo '<table class="imagetable">';
    echo '<tr>';
    echo '<th>code</th>';
    echo '<th>dateAdded</th>';
    echo '<th>effectiveDate</th>';
    echo '<th>price</th>';
    echo '<th>type</th>';
    echo '<th>destination</th>';
    echo '</tr>';

    while ($donnees = $reponse->fetch())
    {       
        echo '<tr>';
        echo '<td><input type="checkbox" name="code" id="code" value="'.$donnees['code'].'"/>'.$donnees['code'].'</td>';
        echo '<td>'.$donnees['dateAdded'].'</td>';
        echo '<td>'.$donnees['effectiveDate'].'</td>';
        echo '<td>'.$donnees['price'].'</td>';
        echo '<td>'.$donnees['type'].'</td>';
        echo '<td>'.$donnees['destination'].'</td>';
        echo "</tr>";           

    }

    echo "</table>";
    echo "</br>";
    echo "</br>";
    $reponse->closeCursor();
    ?>

1 个答案:

答案 0 :(得分:1)

  1. 将事件onclick添加到您的复选框:

    echo '<td><input onclick="remove(this);" type="checkbox" name="code" id="code" ....';
    
  2. 在您的javascript中创建函数remove(),将$donnees['code']发送到remove.php以从DB中删除它:

    function remove(e)
    {
        if (e.target.checked) 
        { 
            ....
            xmlhttp.open("GET","remove.php?code="+e.target.value,true);
            xmlhttp.send();
        }
    }
    
  3. 创建获取代码并从DB中删除的remove.php

    <?php
         if(isset($_GET['code'])){
              //Query to remove from DB where code = $_GET['code']
         }
    ?>
    
  4. 希望这会有所帮助。