如何刷新表单中的下拉字段而不使用ajax刷新整个表单?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何刷新表单中的下拉字段而不使用ajax刷新整个表单?相关的知识,希望对你有一定的参考价值。

有一个表单,其中一个字段是一个下拉字段,其中包含来自数据库的项目名称。

添加新项目有一项规定,点击“添加新”按钮,会出现一个弹出窗口,我们可以保存新项目。

虽然它保存在数据库中,但它没有反映在下拉字段中,因此我们需要刷新。但是刷新整个页面会导致丢失在其他字段中输入的值。

我的问题是,如何刷新此下拉字段而不刷新整个表单?

答案

要在jQuery的下拉框中添加新元素,请使用下面的代码,用正确的信息替换元素ID,a_value和a_text(来自“Add New”按钮的输入信息)。

let dropdown = $('#dropdown');
dropdown.append($('<option></option>').attr('value', a_value).text(a_text));

要么:

$('#dropdown').append($('<option></option>').attr('value', a_value).text(a_name));
另一答案

我有同样的问题,但有一个通知框,所以我附加了一个事件,它通过点击它开始。此事件将一些信息发送到php文件,PHP文件响应来自数据库的通知。您也可以这样做,当用户点击下拉字段时,将使用ajax将请求发送到PHP文件以从数据库中获取信息,并在用户添加项目并保存后,如果他在下拉菜单中访问关闭它一个请求将与页面realod一起发送到数据库以获取信息需求。或者您甚至可以将事件附加到“保存”或其他内容的按钮,因此当他单击保存时,将发送请求,并且响应将附加到下拉菜单的内容而不重新加载。

我的代码如下:JQuery: -

// the event click is attached to the icon of the notification through its class 
$('.icon').click(function () {
//I used this line to make the hidden notification box slide down to show content
    $('#notifications-box').slideToggle(400);
//here the ajax request will be sent on the click
    $.ajax({
// The method of sending the data is POST because it is more seucre
        method: "POST",
//the File that you want to the send the data to 
        url: "get_notifications.php",
// The data that needs to be sent
        data: {
            //the name       : // the value 
            get_notifications: "true"
        },
// then on success the return will be appended to the notification box ( status is the respond )
        success: function (status) {
            $('.notifications-box').append(status);
        }
    });
});

然后你可以在php文件中使用isset()来了解数据是否通过使用从ajax请求发送到php文件

// isset($ _ method(POST / GET)['您在ajax请求中的数据对象的花括号内发送的名称'])

isset($_POST['get_notifications'])

以上是关于如何刷新表单中的下拉字段而不使用ajax刷新整个表单?的主要内容,如果未能解决你的问题,请参考以下文章

从数据库中重新加载下拉列表的数据而不刷新整个页面

仅使用 jQuery/Ajax 刷新表的值而不重新加载页面

如何使用ajax jquery显示插入的查询数据而不刷新

如何在jquery ajax之后刷新网站的一部分而不刷新整个页面

更新选择列表而不刷新 [PDO/PHP/AJAX]

Laravel 使用 Ajax 提交表单而不刷新页面