Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除表中带有复选框的数据_Javascript_Php_Html_Ajax_Checkbox - Fatal编程技术网

Javascript 删除表中带有复选框的数据

Javascript 删除表中带有复选框的数据,javascript,php,html,ajax,checkbox,Javascript,Php,Html,Ajax,Checkbox,我在选择选项(我使用ajax)后在网站上显示一个表,并从数据库中获取数据。我想做的是在我的表中插入一个复选框,当它被选中时,删除数据库中的行。我不想使用提交按钮,但只想使用复选框来删除它 我不太擅长ajax和JavaScript。代码如下: 选择: <p> <label for="client">Veuillez choisir le fournisseur :</label><br /> &l

我在选择选项(我使用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>

函数showUser(str){
如果(str==“”){
document.getElementById(“txtHint”).innerHTML=“”;
返回;
}否则{
if(window.XMLHttpRequest){
//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}否则{
//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(“txtHint”).innerHTML=xmlhttp.responseText;
}
}
open(“GET”、“getTableBuffer.php?q=“+str,true”);
xmlhttp.send();
}
}
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();
    ?>

  • 将事件
    onclick
    添加到复选框中:

    echo '<td><input onclick="remove(this);" type="checkbox" name="code" id="code" ....';
    
  • 创建获取代码并从数据库中删除的
    remove.php

    function remove(e)
    {
        if (e.target.checked) 
        { 
            ....
            xmlhttp.open("GET","remove.php?code="+e.target.value,true);
            xmlhttp.send();
        }
    }
    
    <?php
         if(isset($_GET['code'])){
              //Query to remove from DB where code = $_GET['code']
         }
    ?>
    
    
    

  • 希望这会有所帮助。

    我看不到从表中删除…
    任何地方。我不知道如何获取值并将其删除。您真的应该查看和事件处理程序。尝试使用
    单击
    处理程序,并使用
    .val()
    函数获取所单击复选框的值,然后使用
    .ajax()
    创建一个PHP文件的帖子,删除该项目。希望您是一名学生,而这不是一个实时应用程序?请查找字符串转义和清理,因为当前您的代码容易受到多种攻击(SQL注入、XSS、CSRF),因为您在任何地方都使用字符串变量,没有参数或清理。是否可以在其他地方执行ajax功能?我的意思是,我使用ajax显示我的表,为了删除元素,我必须在表中插入复选框,这些复选框也使用ajax?很抱歉,我是javascript和ajax的新手。我可以看到,您已经在ajax调用的
    getTableBuffer.php
    中选中了复选框:
    。$donnees['code'].'是,现在是:echo'.$donnees['code'].';“要删除元素,我必须在表中插入复选框”您已经在表中插入了复选框,所以只需将click事件附加到复选框,并创建函数remove+php file remove,如回答中所述,它应该可以工作(您不必在另一个表中执行ajax函数)。好的,谢谢!我在复选框中添加了删除函数:echo'.$donnees['code'].';添加了函数remove()和im my remove.php,以便删除该行