php无刷新更新config文件
本用例包含3个文件:index.php、config.php、update_process.php
1、index.php
主要功能:负责显示config.php中的数据信息,并可供修改。
包含技术:
1)$.ajax
2)data = eval('({'+data.trim(',')+'})'); json格式字符串转换成json对象
源码:
1 <html> 2 <head> 3 <title>config 文件更新</title> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <meta http-equiv="Content-Language" content="zh-CN" /> 6 <script type="text/javascript" src="https://files.cnblogs.com/Zjmainstay/jquery-1.6.2.min.js"></script> 7 </head> 8 <body> 9 10 <?php 11 header("Content-type: text/html; charset=utf-8"); 12 13 //获取config.php数据 14 ob_start(); 15 include('config.php'); 16 $configData = ob_get_contents(); 17 ob_clean(); 18 eval($configData); //执行config.php中的变量 19 20 foreach($config as $key => $value){ 21 echo "key:<input type='text' value='{$key}' disabled='disabled'/> value:<input class='input' id='{$key}' type='text' value='{$value}'/><br/>"; 22 } 23 echo '<input type="button" value="保存" id="Save"/>'; 24 echo '<div id="feedback"></div>'; 25 ?> 26 <script type="text/javascript"> 27 $(document).ready(function(){ 28 $("#Save").click(function(){ 29 var inputs = $(".input"); 30 var data = ''; 31 $.each(inputs,function(i,input){ 32 //拼接json格式字符串 33 data += '"' + $(input).attr('id') + '":"' + $(input).val() + '",'; 34 }); 35 //字符串转换成json 36 data = eval('({'+data.trim(',')+'})'); 37 $.ajax({ 38 url:'update_process.php', 39 type:'POST', 40 data:data, 41 success:function(result){ 42 $("#feedback").hide().empty().append(result).toggle(1000); 43 setTimeout('$("#feedback").toggle(1000)',2000); 44 }, 45 error:function(msg){ 46 alert('Error!'+msg); 47 } 48 }); 49 }); 50 }); 51 </script> 52 </body> 53 </html>
2、config.php
数据文件。
数据内容:
1 $config['a_a']='a1'; 2 $config['a_b']='a2'; 3 $config['a_c']='a3';
3、update_process.php
主要功能:负责接收ajax上传数据并更新config.php,反馈更新成功与否信息。
源码:
1 <?php 2 if(empty($_POST)) { 3 echo 'Post empty data!'; 4 } 5 6 ob_start(); 7 include('config.php'); 8 $configData = ob_get_contents(); 9 ob_clean(); 10 eval($configData); 11 12 $data = ''; 13 foreach($config as $key => $value){ 14 //以config.php中的变量为标准,POST值存在则更新,否则保留config.php中的变量值。 15 if(isset($_POST[$key])) $data .= "\$config['{$key}']='{$_POST[$key]}';\n"; 16 else $data .= "\$config['{$key}']='{$value}';\n"; 17 } 18 19 file_put_contents('config.php',$data); 20 echo 'Success Updated!'; 21 //End_php
软件包下载:config文件无刷新更新源码
演示地址:config文件无刷新更新演示