Php AJAX问题自动保存
我正在练习ajax。我不知道该怎么做,或者怎么做。这是我第一次这样做。这是我的密码Php AJAX问题自动保存,php,ajax,Php,Ajax,我正在练习ajax。我不知道该怎么做,或者怎么做。这是我第一次这样做。这是我的密码 <?php function save() { // mysql connection $text = $_POST['name']; // insert query } ?> <input type="text" name="name" onchange="<?php save() ?>" value="default"> 我不知道你是否应该这样存钱 您
<?php
function save() {
// mysql connection
$text = $_POST['name'];
// insert query
}
?>
<input type="text" name="name" onchange="<?php save() ?>" value="default">
我不知道你是否应该这样存钱
您可能需要事件onblur()
,或者更好的方法是,通过JavaScript添加事件,不要使用内联属性
但最大的问题是您试图从JavaScript调用PHP函数。JavaScript不能像那样与PHP交互。考虑客户机/服务器关系以及代码运行的位置
您需要调用一个JavaScript函数,该函数发送输入的值,然后PHP可以使用该值写入您的数据库。我不知道您是否应该这样保存
您可能需要事件onblur()
,或者更好的方法是,通过JavaScript添加事件,不要使用内联属性
但最大的问题是您试图从JavaScript调用PHP函数。JavaScript不能像那样与PHP交互。考虑客户机/服务器关系以及代码运行的位置
您需要调用一个JavaScript函数,该函数发送输入的值,然后PHP可以使用该值写入您的数据库。简短回答:您不能从JavaScript调用PHP函数,因此您尝试的方法不起作用
详细回答:您需要找到AJAX简介并学习它。为了完成您描述的任务,您需要:
- 在JavaScript中实例化
XMLHttpRequest
对象
- 告诉它在服务器将调用PHP脚本的某个URL处与服务器联系
- 告诉它通过POST发送所有必要的信息(特别是用户键入的文本)
- 编写PHP脚本时,它将保存文本并返回类似
true
/false
的内容,以指示成功/失败
- 回到JavaScript中,根据响应是否成功,在响应到来时处理响应,例如显示一条消息,称为“消息已保存”或“消息无法保存:(错误消息)”
简短回答:您无法从JavaScript调用PHP函数,因此您尝试的方式无法工作
详细回答:您需要找到AJAX简介并学习它。为了完成您描述的任务,您需要:
- 在JavaScript中实例化
XMLHttpRequest
对象
- 告诉它在服务器将调用PHP脚本的某个URL处与服务器联系
- 告诉它通过POST发送所有必要的信息(特别是用户键入的文本)
- 编写PHP脚本时,它将保存文本并返回类似
true
/false
的内容,以指示成功/失败
- 回到JavaScript中,根据响应是否成功,在响应到来时处理响应,例如显示一条消息,称为“消息已保存”或“消息无法保存:(错误消息)”
我认为您需要首先了解AJAX的概念
试试这个。
给你一个简单的想法;
假设有一个虚构的
标记
,其中包含一个要提交的方法、操作和数据。在您的情况下,输入的onchange事件触发此
的“提交”,假设您已经设置了要提交的数据的值。发生这种情况时,页面不会刷新或重定向。相反,javascript创建了一个“单独的进程线程”,就像
在不同的“窗口”中提交一样。因此,术语“异步”
AJAX更像是一种Javascript。我认为您需要首先了解AJAX的概念
试试这个。
给你一个简单的想法;
假设有一个虚构的标记
,其中包含一个要提交的方法、操作和数据。在您的情况下,输入的onchange事件触发此
的“提交”,假设您已经设置了要提交的数据的值。发生这种情况时,页面不会刷新或重定向。相反,javascript创建了一个“单独的进程线程”,就像
在不同的“窗口”中提交一样。因此,术语“异步”
AJAX更像是一种Javascript。有多种方法可以创建AJAX调用。最简单的方法是使用Javascript框架,如或。Ajax就是这样简单的。在这里检查Mootools演示和jquery
逻辑很简单。将事件添加到文本框以在值更改时保存该框。您的事件函数将生成Ajax请求并将其发送到服务器,接收响应,您可以使用该响应让用户知道保存事件的状态(如果您选择)
这是我为你们写的一篇简短的文章,也许能帮助你们理解。将需要包括Mootools库。可能有bug,但Ajax调用的概念已经存在。page=index.php
<?php
// PHP before anything else...
//
// Check to see if task is specified and need to save changes
if (isset($_POST['task']) && $_POST['task'] == 'save') {
// mysql connection
$text = $_POST['name'];
// insert query
$isSuccess = 'Status of SAVING CHANGES';
// Output... output will be used by 'update' to set value of <div id="log">...</div>
// so user knows what is happening
echo $isSuccess ? 'Successfully Saved' : 'Failed to Save';
exit();
}
?>
<html>
<head>
<!-- NEED TO INCLUDE MOOTOOLS LIBRARY -->
<script type="text/javascript">
window.addEvent('domready', function(){
$('name').addEvent('blur', saveChanges);
/**
* Generates request and saves changes
*/
function saveChanges(){
// URL which will be called
var url = "index.php";
// New Ajex request. Note that it will be sent because of .request() at the end
new Ajax(url, {
// Method : post/get
method: 'post',
// Data to be passed
data :{
name : $('name').value,
task : 'save'
},
// Output of the AJAX will be set to this element
update: $('log')
}).request();
}
});
</script>
</head>
<body>
<form action="index.php" onsubmit="return false">
<div id="log"></div>
<!-- SOME CONTENT ... -->
<input type="text" name="name" id="name" value="">
</form>
</body>
</html>
addEvent('domready',function(){
$('name').addEvent('blur',saveChanges);
/**
*生成请求并保存更改
*/
函数saveChanges(){
//将被调用的URL
var url=“index.php”;
//新的Ajex请求。请注意,由于结尾处的.request()将发送该请求
新Ajax(url{
//方法:post/get
方法:“post”,
//要传递的数据
数据:{
名称:$('name')。值,
任务:“保存”
},
//AJAX的输出将被设置为此元素
更新:$(“日志”)
}).request();
}
});