1. 程式人生 > >PHPCMS V9使用ajax方式提交表單

PHPCMS V9使用ajax方式提交表單

頁面效果:

實現步驟:

一、前臺模板(注:需要引入jquery檔案)

<form id="myform" class="subscribe-form subscription" >
      <input type="hidden" name="fid" value="15">
      <input type="hidden" name="sid" value="1">
      <input type="hidden" name="dosubmit" value="1">
      <input type="email" id="yemail" name="info[yemail]" placeholder="請輸入郵箱">
      <input type="button" value="提交" onclick="formsubmit()">
      <div class="clearfix"></div>
      <p class="newsletter-success"></p>
      <p class="newsletter-error"></p>
</form>

<script language="javascript">
function formsubmit() {
    var yemail = $('#yemail').val();
    if (yemail == '') {
      $(".newsletter-error").html("郵箱不能為空!").fadeIn().delay(3000).fadeOut();
      return false;
    }
    if(!yemail.match(/^([a-zA-Z0-9_-])
[email protected]
([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/)) { $(".newsletter-error").html("郵箱格式不正確!").fadeIn().delay(3000).fadeOut(); return false; } var params = $('#myform').serialize(); //序列化表單的值 $.ajax({ url:'index.php?m=formguide&c=index&a=diyform', //後臺處理程式 type:'post', //資料傳送方式 dataType:'json', //接受資料格式 data:params, //要傳送的資料 success:Response//回傳函式(這裡是函式名字) }); } function Response(resp) { if (resp.result === 'success') { $('.newsletter-success').html("提交成功!").fadeIn().delay(3000).fadeOut(); } else if (resp.result === 'error') { $('.newsletter-error').html("提交失敗!").fadeIn().delay(3000).fadeOut(); } } </script>

二、表單控制器 phpcms/modules/formguide/index.php 中增加diyform()函式.

public function diyform(){
		if (!isset($_POST['fid']) || empty($_POST['fid'])) {
			$res['result'] = "error";
			exit;
		}
		$siteid = $_POST['sid'] ? intval($_POST['sid']) : 1;
		$formid = intval($_POST['fid']);
		$r = $this->db->get_one(array('modelid'=>$formid, 'siteid'=>$siteid, 'disabled'=>0), 'tablename, setting');
		if (!$r) {
			$res['result'] = "error";
			exit;
		}
		$setting = string2array($r['setting']);
		if ($setting['enabletime']) {
			if ($setting['starttime']>SYS_TIME || ($setting['endtime']+3600*24)<SYS_TIME) {
				$res['result'] = "error";
				exit;
			}
		}
		if (isset($_POST['dosubmit'])) {
			$tablename = 'form_'.$r['tablename'];
			$this->m_db->change_table($tablename);

			$data = array();
			require CACHE_MODEL_PATH.'formguide_input.class.php';
			$formguide_input = new formguide_input($formid);
			$data = new_addslashes($_POST['info']);
			$data = new_html_special_chars($data);
			$data = $formguide_input->get($data);
			$data['datetime'] = SYS_TIME;
			$data['ip'] = ip();
			$dataid = $this->m_db->insert($data, true);
			if ($dataid) {
				$this->db->update(array('items'=>'+=1'), array('modelid'=>$formid, 'siteid'=>$this->siteid));
			}
			$res['result'] = "success";
			echo json_encode($res);
		}
	}

相關推薦

PHPCMS V9使用ajax方式提交

頁面效果: 實現步驟: 一、前臺模板(注:需要引入jquery檔案) <form id="myform" class="subscribe-form subscription"

spring-boot restful put方式提交

project 代碼 pin bsp app utm oot request print 使用spring-boot 做接口,如果按restful的路由形式想使用put方式進行表單提交,第一個參數應該為文件參數,代碼如下: @PutMapping("/http-put

ajax方式提交資料並判斷當前註冊使用者是否存在

專案的目錄結構 原始碼: regservlet.java package register; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; imp

tp5中ajax方式提交

失敗 提交表單 static lan color doctype set alert NPU 用ajax提交表單,迅速,快捷,實現頁面無刷新提交表單。 <!DOCTYPE html> <html lang="en"> <head>

jQuery實現Ajax方式提交

提交表單一般通過同步的方式提交,提交後頁面重新整理或跳轉到新頁面來顯示伺服器端返回的處理結果。如果表單提交後有另外的操作或業務需求需要還在這個頁面上顯示或處理,那麼頁面不能整體重新整理,這時第一想到的就是採用ajax的方式提交表單。下面完整的介紹一個表單採用ajax方式提交的

非ajax方式提交不重新整理頁面

Ajax最大的特點就是可以不重新整理頁面而實現資料的通訊及更改頁面資訊。那麼用AJAX進行後臺通訊傳遞字串還是可以的,遇到上傳檔案該怎麼辦呢?基於安全考慮,JS是不能直接進行檔案操作的,只好用原始的from來提交檔案上傳了。這樣一來,用form不就要重新整理頁面了嗎?其實也不是。 這是網上找的一

java模擬上傳檔案,java通過模擬post方式提交實現圖片上傳功能例項

package com.zdz.httpclient;import java.io.BufferedReader;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.

java模擬post方式提交實現圖片上傳

模擬表單html如下: <form action="up_result.jsp" method="post" enctype="multipart/form-data" name="form1" id="form1">       <label>

extjs以普通方式提交

程式碼如下: formObj.getForm().getEl().dom.action = url; formObj.getForm().getEl().dom.method = 'POST'; formObj.getForm().getEl().dom.target

ajax和form方式提交資料量大的問題

ajax和form方式提交表單資料量大後臺request中的paramMap只有9999的資料,有一部分資料沒有了.在form中新增屬性enctype="multipart/form-data"使用檔案上傳的方式,不過這樣後臺取表單資料的方法就需要修改.只能迴圈fileIte

JavaScript 實現POST方式提交

        使用js實現POST表單提交主要應該在使用url資料提交時url地址超長的問題。 JavaScript程式碼如下: //Post方式提交表單 function PostSubmit(url, data, msg) { var postUrl = ur

HPCMS V9使用ajax方式提交

lena for response fad serial ack color end 成功 一、前臺模板(註:需要引入jquery文件) <form id="myform" class="subscribe-form subscription" >

提交的4種方式

demo1 doc type function pat 相對 dem location cti 1,超鏈接 <!-- 鏈接到page2 --> <a href="page2.jsp">鏈接到page2</a><br> <

phpcms v9自定義提交後返回上一頁實現方法

最新福利:領取阿里雲1000通用代金券 PHPcms v9中提交自定義表單後預設都是回到首頁的,是不是感覺很不爽!接下來,就說下phpcms v9自定義表單提交後返回上一頁實現方法。1、找到這個檔案 phpcms\modules\formguide\index.php2、找到如下程式碼showm

js提交方式事件

1、表單提交方式 (1)使用submit提交 <form> ... <input type="submit"> </form

Servlet的5種方式實現提交(註冊小功能),後臺獲取資料

用servlet實現一個註冊的小功能 ,後臺獲取資料。 註冊頁面:    註冊頁面程式碼 : <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title&g

HttpClient使用post方式模擬提交資料到伺服器並下載伺服器檔案

public class HttpClientPostUtil {  public static String  loginGet(String url,String username,Stri

使用Spring AOP註解方式實現重複提交驗證功能

防重複提交常見解決方案:http://patrick002.iteye.com/blog/2197521 定義註解 @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interf

JavaScript—非同步提交的6種方式

在學習非同步提交表單之前,先來學習幾個JQuery方法和屬性。 1、serialize():序列表格內容為字串。如下: queryBean.orderBy=OPERATE_TIME&queryBean.orderSequnce=DESC&queryB

ajax-springMVC提交方式

1.request引數提交(Form提交),適用於GET/POST request引數傳遞都會轉換成 id=123&fileName=test.name&type=culture_art這種形式,get請求會顯示在url上,post不在url上顯示   ajax寫