繁体   English   中英

如何使用AJAX创建/更新单选按钮?

[英]How to use AJAX to create/update radio buttons?

我目前有一个设置,我使用PHP脚本通过从我的数据库加载所需的信息来创建单选按钮列表。 此脚本位于HTML结构中,而不是单独的文件,因此需要页面刷新才能更新列表。

我想知道如何在按下按钮时删除并重新加载列表,其ID是'btnDelete'(数据库中项目的实际删除是一个单独的点,我不会在这里讨论)。 我当前的代码将删除单选按钮列表,但是当添加下一行时,没有任何反应(包括列表删除)。

PHP(delCom.php)

                <?php
                    include_once('includes/conn.inc.php');
                    $query = ("SELECT comicID, comicName  FROM comic WHERE username = '".$_SESSION['username']."'");
                    $result = mysqli_query($conn, $query);
                    while ($row = $result->fetch_assoc()) 
                    {
                        echo "<br><input name='comicList' id='".$row['comicID']."' type='radio' value='".$row['comicID']."'>".$row['comicName']."  </option>";
                    }
                ?>

JavaScript的

function delComic()
        {
            var ajaxRequest;  

            try
            {
                // Opera 8.0+, Firefox, Safari
                ajaxRequest = new XMLHttpRequest();
            } 
            catch (e)
            {
                // Internet Explorer Browsers
                try
                {
                    ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
                } 
                catch (e) 
                {
                    try
                    {
                        ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                    } 
                    catch (e)
                    {
                        // Something went wrong
                        alert("Your browser broke!");
                        return false;
                    }
                }
            }
            // Create a function that will receive data sent from the server
            ajaxRequest.onreadystatechange = function()
            {
                if(ajaxRequest.readyState == 4)
                {
                    $("#loadList").remove();
                    document.getElementById("divComics").innerHTML=xmlhttp.responseText;
                }
            }
            ajaxRequest.open("GET", "delCom.php?t=", true);
            ajaxRequest.send(null); 

        }

HTML

<div id="divComics">
            <p><u>Uploaded Comics</u></p>
            <!-- find comics in database -->
            <div id="loadList">
                <?php
                    include_once('includes/conn.inc.php');
                    $query = ("SELECT comicID, comicName  FROM comic WHERE username = '".$_SESSION['username']."' ORDER BY comicName ASC");
                    $result = mysqli_query($conn, $query);
                    while ($row = $result->fetch_assoc()) 
                    {
                        echo "<br><input name='comicList' id='".$row['comicID']."' type='radio' value='".$row['comicID']."'>".$row['comicName']."  </option>";
                    }
                ?>
            </div>
            <br>
            <br>
            <input  type="button" onclick="delComic()" value="Delete Comic" name="deleteButton" id="btnDelete"/>
        </div>

代码在HTML中运行时正确创建按钮,但在单独的php文件中则不行。

提前致谢。

编辑:更新以修复一些错误名称的东西,并添加建议的新行。 loadList现在清空但不会删除它本身。 目前的问题是PHP文件不会再次输出按钮。

没有带id=comicList元素,你不能删除它$("#comicList").remove(); 在Javascript中,因为它不存在。 Javascript可能在此时停止执行,因此不会显示PHP的结果。

<?php
       $username = $_GET['username'];
                    include_once('includes/conn.inc.php');
                    $query = ("SELECT comicID, comicName  FROM comic WHERE username = '$username'");
                    $result = mysqli_query($conn, $query);
                    while ($row = $result->fetch_assoc()) 
                    {
                        echo "<br><input name='comicList' id='".$row['comicID']."' type='radio' value='".$row['comicID']."'>".$row['comicName']."  </option>";
                    }
                ?>

ajaxRequest.onreadystatechange = function()
            {
                if(ajaxRequest.readyState == 4)
                {
                    document.getElementById('loadList').innerHTML="";
                    document.getElementById("divComics").innerHTML=xmlhttp.responseText;
                }
            }
            ajaxRequest.open("GET", "delCom.php?username=MY_EXACT_NAME_I_KNOW_WORKS_HERE", true);
            ajaxRequest.send(null); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM