gpt4 book ai didi

php - 异步保存数据php

转载 作者:行者123 更新时间:2023-12-02 19:29:38 26 4
gpt4 key购买 nike

今天,我的一位客户要求他需要在表单数据发生变化时将其异步保存到服务器

例如:

我有一个用于填写用户详细信息的表单,包括文本框、选择、单选、检查等...

因此,当我更改文本框中的值时,我需要将它们保存回服务器。

php 上有我可以使用的库或其他东西吗?

请注意,我知道什么是ajax,但我仍然需要手动编写很多代码,而且我关心可重用性。这就是为什么我要一个图书馆。

编辑

我知道 jQuery、Js、Ajax 等..但我的想法不同...

这么说

<input type="text" class="dataBinder[name]" id="cname" name="name" />
<input type="checkbox" class="dataBinder[agree_me]" id="agree_me" name="agree_me" />

我当然可以

 $("#cname").event(function(){

var is_changed = true; ///check for changes if any

if(is_changed)
{

//send to the server
}

});

但我正在寻找一个可以自动执行此操作的库

例如:

//assume a library dataMapper

var myForm = $("#myForm"); //get the form

myForm.dataMapper({

"server" :"serverUrl/someFunc.php"
//may be some other kind of option too
});

someFunc.php 在服务器上

dataMapper DM = new dataMapper();

$changes = DM->get_data(); //a function that which give the changes

return $changes

值来自 dataBinder[name] 来自

<input type="text" class="dataBinder[name]" id="cname" name="name" />

var_dump($changes); 给出

array(3) {
["changes"]=>
array(2) {
["cname"]=>
string(15) "my-changed-name"
["agree"]=>
bool(false)
}
["time"]=>
string(6) "720124"
["form"]=>
string(6) "formId"
}

我确信可能有很多关于开发人员的问题,但我只是在搜索是否有,因为我不想重新发明轮子。

最佳答案

为什么不在您需要的每个输入元素中使用 data-save-ajax 属性并将 ajax 页面添加为值。现在,您创建一个 jQuery(或您喜欢的任何 ajax javascript)并编写一个 on-change 事件处理程序,将值保存到 data-save-ajax 链接。

类似这样的事情:

jQuery("[data-save-ajax]").change( function() {
jQuery.ajax({
url: jQuery(this).attr("data-save-ajax"),
method: 'post',
data: {
newvalue: jQuery(this).val()
}
});
});

需要考虑的是它将产生的负载。最好是在失去焦点时使用事件处理程序。或者,如果您更喜欢 on-change,那么可能需要在开始 ajax 更改之前几毫秒。

data-save-ajax 链接当然是一个 php 页面,用于检查 session 并根据 url 将数据保存到数据库。您可以使用 .htaccess (或其他)重写来让您的 php 知道您正在使用什么输入。

例如,/ajax/text/name 的数据保存 ajax url 将被重写为 /ajax/index.php

我曾经写过一个像这样的ajax更新程序,它很容易构建,并且您可以在需要时轻松更新或重用它。

关于php - 异步保存数据php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11671296/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com