当前位置:首页 » 编程语言 » ajaxphp函数

ajaxphp函数

发布时间: 2023-03-26 08:09:54

‘壹’ ajax传值给php

javascript函数不能这样写,改成下面这样:

<scripttype="text/javascript"src="jquery-1.2.6.min.js"></script>
<scripttype="text/javascript">
functionShowNumber(device)
...
</script>

‘贰’ 我想用AJAX实现在js里调用PHP里的函数,不知道怎么写啊,没学过Ajax

AJAX其实就是HTTP的GET、POST去调用一个独立的服务绝孙明器上的PHP文件并告,不能凯陵是调用某个文件的函数。

‘叁’ ajax调用PHP类库中的函数

直接调用不可能,但可以绕过去调用
a.php
<?php
$_token = md5(time());//令牌
$_SESSION['_TOKEN'] = $_token;
//....
?>
<html>
...
<form>
<input name="_TOKEN" value="<?php print $_token; ?>">
....
//这里说一下令牌,令牌一般是服务器端验证提交数据是否为合法
//与验证码功能差不多,不过验证码需要手动输入,这个是程序内部使用
...
处理post
<?php
if($_POST['_TOKEN'] == $_SESSION['_TOKEN'])
{
$_SESSION['_TOKEN'] = '';//清除令牌,防止网络延缓的再次提交。
...
}
?>
然后是ajax
上面我为什么要在你原来的程序上加入令牌呢,因为可以随意的调用php函数是很不安全的,很容易被有心人利用,所以做一点安全保护,当然不一定绝对安全

function _new_ajax()
{
//创建XMLHTTPRequests
return xhr;
}

function _ajax(_option)//url, data, type, async
{
//初始化
if(typeof _option.url == 'undefined' || _option.url == '')
{
alert('ajax错误,没有定义请求路径');
return false;
}
_option.data = _option.data || {};
_option.type = _option.type || 'GET';
_option.async = _option.async || true;
_option.callback = _option.callback || function(){};
//开始请求
var xhr = _new_ajax();
if(typeof _option.data == 'string')
{
_option.url += (_option.url.match(/\?/) ? "&" : "?") + _option.data;
}
else
{
for(var i in _option.data)
{
_option.url += (_option.url.match(/\?/) ? "&" : "?") + i + '=' + _option.data[i];
}
}
xhr.open(_option.type, _option.url, _option.async);
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200)
{
var res = xhr.responseText;
_option.callback(res);
}

};
xhr.send(null);
xhr = null;
}
上面的是我简单写的,估计考虑不是很全

验证用户是否存在就这样
function check_user_id()
{
document.getElementById('useridexist').innerHTML = "Check the ID, Please wait...";
var user_id = document.login.userid.value;
//这里是上面说的,要直接使用函数库,必须安全验证
var _TOKEN = document.login._TOKEN.value;
_ajax({
url:'class/useridexist.php',
data:{_TOKEN:_TOKEN, function:check_user, id:user_id},//调用php函数check_user
callback:function(res){
document.getElementById('useridexist').innerHTML = res;
}
})
}
好了,准备就绪,现在看php端了
b.php
<?php
if($_GET['_TOKEN'] == $_SESSION['_TOKEN'])
{
//这里不清除令牌,因为提交post还要使用,验证在前,提交post在后
$function = $_GET['function'];
if(function_exists($function))
{
$function($_GET);
}
else
{
print '函数'.$function.'不存在';
}
}

//以下为函数库
function check_user($get)
{
//.....验证存在否,输出
}
?>

‘肆’ 重点只有一个:php如何获取ajax函数传来的data值

$sql="INSERTINTOusers(username,psw)VALUES($_POST['username'],$_POST['psw'])";

当然会发生PHP的解析错误。


在php里,把$_POST['username']这种东西放进双引号字符串里,如"hi, $_POST['name']",无法被识别。常见的是"hi, $name",这样可以。

要想实现把$_POST数组中的值插入SQL语句有多种方法。


1.PHP的字符串串接操作符即“点”号(注意:sql中字符串要加引号)

$sql="INSERTINTOusers(username,psw)VALUES('".$_POST['username']."','".$_POST['psw']."')";

2.

$sql="INSERTINTOusers(username,psw)VALUES('{$_POST['username']}','{$_POST['psw']}')";

3.prepared statement。较复杂但是安全。

4.字符串格式化函数sprintf

$sql=sprintf("INSERTINTOusers(username,psw)VALUES('%s'键闭,'%s')",$_POST['username'],$_POST['psw']);


提醒:直接向sql语句中插入$_POST数组中的这些值而不经过转义会绝缓让网页存在极严重的SQL注入漏洞!解决方法:传统方法是用mysql_real_escape_string,现代方法是用prepared statement。


不懂请追问,满意请采纳。



补充,你的前端似乎还有问题。dataString 里直接插入ousername和opsw可并亮模能有问题。可能应该先经过url转义。我记得jquery的ajax可以直接post一个json字典,这样应该更好。

‘伍’ ajax怎么读取后台php数据

其实就是发送一个网络请求,服务端输出的内容就是响应的内容,如jQuery

$.ajax(
{
url:'',//请求URL
data:'',//请求时携带的参数
type:'',//请求方式迹物皮,GET/POST
dataType:'',//响应数据格式,text/json
success:r=>{
//请求成功时回调函数,参数r为服务端响应的内容
console.log(r);//就是你说的后蚂颤台数据
},
error:()=>{
console.error('fail');//请求失姿差败
}
}
)
//服务端响应内容

$data=[];//从数据库中获取的数据

echojson_encode($data);//响应客户端,数据格式为JSON

‘陆’ php函数输出ajax列表框

check(){
var myphone = $("#myphone").val();//手机1
var friendphone = $("#friendphone").val();//手机2
$.ajax({//一个Ajax过程
type: "POST", //以post方式与后台沟通
url : "ajax.php",//与此php页面沟通
dataType:'json',//从php返回的值以 JSON方式 解释
data: 'myphone='+myphone+'&friendphone='+friendphone,
cache:false,
success: function(msg){//如果调用php成功,注意msg是返回的对象,这个你可以自定义
if(msg.ajaxmyphone==''){//ajaxmyphone就是数组的一个键值
alert('手机1不存在!');
return false;
}
if(msg.ajaxyouphone==''){//另外一个键值
alert('手机2不存在!'行握则);
return false;
}
}
});
}
</script>

PHP部分

首先你要把你返回的值压制成数皮磨组 例如

echo json_encode(array('ajaxmyphone'=>$ajaxmy,'id'=>$id));
注意 json_encode 这个函数是专门把返回的档棚数组编码,否者返回的值,Ajax就不能得到值

忘我的回答能采纳

‘柒’ 求解php怎么用ajax 查了半天还是不太懂 求老个写个简单例子

php有内部闭悔耐函数可以直接完成ajax的功能,比如:

<?php
$f=file_get_contents("网址写在这里");
echo$f;
?>前弯

还轿春可以用curl

‘捌’ ajax post 调用PHP函数,如何实现下载文件ubuntu系统

刚刚做的项目就有这个功能
首先你不可能获取碰老用户下载的结果,所以你不可能知道用户宽稿有没有下载,或者下载完慎吵孝了没有,不过你可以这样:
$content="内容";
$filename='1.csv';
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=".urlencode($filename));
echo $content;
这样做根本服务器上根本不会创建文件,所以也就没必要删除。

‘玖’ PHP跨域获取json数据的方法,PHP里面有没有类似ajax的函数

php中的文件读写函数基本上都可直接支持url,也就是说你可以像操作本地文件一样直接操作其他网站的文件(当然只是读取,写入是不可能的),而且没有任何跨域限制,比如下面一行代码就可直接读取网络首页的html代码:
$bd=file_get_contents("http://www..com");
如果想获取json数据,只需把网址换一下即可。当然,还需要做一下格式转换,php本身就有专门的json转换函数:
$json=json_decode(file_get_contents("网址"),true);
这样一看,是不是比前端的ajax还要简单百倍?!

‘拾’ jquery ajax php 调用方法!

我大概明白你的意思了


是不是类似于spring mvc用url实现相关方法的调用哇,我以前在网上看到过有类似的php框架


我之前写过一个小程序,是模拟出来这种效果的,但是是以参数形式传过去的,你可以参考一下


js部分

$.ajax({
url:'index.php',
params:{
a:'method/delete'
}
})


index.php

<?php
if(!empty($_REQUEST['a'])){
$a=explode('/',$_REQUEST['a']);
$class=$a[0];
$method=$a[1];
//加载类
if(!class_exists($class)){
require$class.'.php';
}
//执行方法
if(function_exists($method)){
$do='$obj=new'.$class.'();';
eval($do);
$do='$obj->'.$method.'();';
eval($do);
}
}
?>
热点内容
全局路由配置和代理怎么设置 发布:2024-11-03 02:28:24 浏览:871
空间谱估计理论与算法 发布:2024-11-03 02:25:47 浏览:248
linux括号 发布:2024-11-03 02:19:06 浏览:110
安卓7自带小游戏怎么玩 发布:2024-11-03 02:17:59 浏览:158
csgo如何连服务器 发布:2024-11-03 02:13:04 浏览:392
斯坦福python 发布:2024-11-03 01:47:08 浏览:610
乘法编程教程 发布:2024-11-03 01:37:06 浏览:694
咒怨2ftp 发布:2024-11-03 01:31:17 浏览:433
linux如何安装telnet 发布:2024-11-03 01:20:20 浏览:85
苹果手机怎么加密软件 发布:2024-11-03 01:20:16 浏览:887