Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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
有没有一种只使用PHP和JavaScript提交表单而不刷新页面的方法?_Php - Fatal编程技术网

有没有一种只使用PHP和JavaScript提交表单而不刷新页面的方法?

有没有一种只使用PHP和JavaScript提交表单而不刷新页面的方法?,php,Php,我在大学有一个项目,我不想在提交表格后刷新页面 问题是,对于这个项目,我只允许使用基本编程语言,因此我不能使用jQuery(我使用post方法找到了解决方案)或任何类型的库或框架。还有别的办法吗 如果没有额外的库/框架就无法实现,那么使用PHP获取表单信息的最佳方式是什么?表单应该使用GET还是POST方法?我在网上看到过许多不同的类型,我想确定哪一种最适合(登录、注册表单,例如我的项目中的表单)。您可以使用纯JS和PHP,下面是一个简单的例子。您可以使用事件侦听器和XMLHttpRequest

我在大学有一个项目,我不想在提交表格后刷新页面

问题是,对于这个项目,我只允许使用基本编程语言,因此我不能使用jQuery(我使用post方法找到了解决方案)或任何类型的库或框架。还有别的办法吗


如果没有额外的库/框架就无法实现,那么使用PHP获取表单信息的最佳方式是什么?表单应该使用GET还是POST方法?我在网上看到过许多不同的类型,我想确定哪一种最适合(登录、注册表单,例如我的项目中的表单)。

您可以使用纯JS和PHP,下面是一个简单的例子。您可以使用事件侦听器和XMLHttpRequest对象发出请求。我建议使用POST请求

POST和GET有什么区别? 在HTTP协议中,GET和POST方法都用于将数据从客户端传输到服务器,但这两种方法的主要区别在于GET在URL字符串中附加了请求参数,而POST在消息体中附加了请求参数,这使得HTTP协议中从客户端传输数据到服务器更加安全。通常,当您处理数据时,例如传递电子邮件时,您必须使用POST,以避免安全问题

var myForm=document.getElementById('my_form');
myForm.addEventListener('submit',(e)=>{
e、 preventDefault();//避免在单击“提交”按钮时刷新页面
})
函数登录(){
让userEmail=document.getElementById(“email_字段”).value
让userPass=document.getElementById(“密码字段”).value
log(`Email:${userEmail}-Pass:${userPass}`);//将打印您的数据
让http=newXMLHttpRequest();
让url='get_data.php';//您的php控制器
设params=`email=${userEmail}&pass=${userPass}`;
http.open('POST',url,true);
//随请求一起发送正确的标头信息
http.setRequestHeader('Content-type','application/x-www-form-urlencoded');
http.onreadystatechange=function(){//在状态更改时调用函数。
如果(http.readyState==4&&http.status==200){
警报(http.responseText);
}否则{
log('无法发出请求');
}
}
http.send(params);
}

登录
你试过了吗?因为不能使用框架或库,所以只需使用javascript的XMLHttpRequest对象。不要忘记编写一个PHP脚本来处理该请求


对于HTTP方法的选择,如果您想符合RESTful API标准,可以参考文档。

jQuery只是普通Javascript的包装,使其更易于使用。因此,是的,您可以使用普通的javascript来完成这项工作,而使用原始的XMLHttpRequest对象则需要更多的工作。这可能会对您有所帮助-MDN提供了一个关于如何使用XHR和
FormData
提交表单的详细信息,使用GET进行读取操作,使用POST进行写入操作。注册将是一个帖子,登录可能是一个GET,除非远程发生了您不想重复的事情(例如,如果存在可疑的登录活动,则向用户发送电子邮件)。