HTML与cgi程序的数据交互

1. Html通过ajax获取cgi返回的数据

function HtmlGetCgiData()
{
	$.ajax({
		type: 'POST', 	//提交方法
		url: 'cgi-bin/wg67_key_in/wg67_key_in_reflush.cgi', 	//调用到的cgi程序
		data: "ajax", 	//发送的数据,不可缺失该项,不能为空(空:ajax执行失败)
		dataType: "text", 	//不可缺失
		ContentType: "application/text; charset=utf-8",  
		success: function (returnedData, status)
		{
			if(status == "success"){	//判断是否有返回值(returnedData:cgi返回值)
				alert(returnedData);
			}
			else{
				alert("刷新失败");
			}
		},
		error: function (msg)
		{
			alert("ajax执行失败");
		}
	});
}

cgi端数据返回:

cout << "I am cgicc..." << endl;
cout << "html alert show cgicc return data." << endl;

fprintf(stdout, "%s\n", "I am cgic...");
fprintf(stdout, "%s\n", "html alert show cgic return data.");

//结论:html通过ajax获得的是 cgi标准输出 的数据。

注意:ajax操作,依赖库:jquery

网址:jquery下载所有版本(实时更新)

<script src="SpryAssets/jquery-3.5.1.min.js"></script>

// 1)最好是下载到本地,加入到工程中,再引入到代码中
// 2)也可以使用网络url,直接引入到自己的代码中,不需要下载js文件

2. cgicc通过其库中一系列的get函数,获取html相关标签的值

此处,以 “表单form” 在执行 “submit” 时,获取表单中全部 “input 标签” 值为例。

// time_sync.cgi

void TestMode()
{
	Cgicc formData;		//加载Cgicc,获取Cgicc对象
	//获取 input标签 值
	const vector<cgicc::FormEntry>& form_entries = formData.getElements();	//getElements()函数,获取该from表单中全部 input标签
	cout << "form_entries.size()=" << form_entries.size() << endl;
	for (vector<cgicc::FormEntry>::size_type i=0; i<form_entries.size(); ++i)
	{
		const cgicc::FormEntry& form_entry = form_entries[i];
		//打印每个 input标签 中 name属性 和 value属性值
		cout << "getName=" << form_entry.getName() << "; getValue=" << form_entry.getValue() << endl;
	}
}

 html表单:

<script>
function TimeSynSubmit(obj)
{
	...
    ...
	obj.action="/cgi-bin/time_sync/time_sync.cgi?submit";
	obj.submit();
}
</script>
<form id="form2" name="form2" method="post">
	<tr>
		<td class="ys12">时间服务器IP:</td>
		<td><input name="time_server_ip" type="text" id="time_server_ip" value="" size="20" maxlength="15" /></td>
	</tr>
	<tr>
		<td class="ys12">同步周期(1-1440min):</td>
		<td><input name="time_cycle" type="text" id="time_cycle" value="" size="20" maxlength="4" /></td>
	</tr>
	<tr>
		<td>&nbsp;</td>
		<td>&nbsp;</td>
	</tr>
	<tr>
		<td><script type="text/javascript">
			document.write("<input type=\"submit\" name=\"button_submit\" id=\"button_submit\" value=\"提交\" onclick=\"return TimeSynSubmit(this.form);\" />");											
		</script></td>
	</tr>
</form>

 

 注解:

 1)cgicc的安装和使用,可以参考:Cgicc搭建交叉编译环境(移植到arm)-CSDN博客

 2)cgicc手册:参考:https://www.cnblogs.com/aquester/p/10064335.html

  • 13
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值