日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Ajax PHP 边学边练 之四 表单

發(fā)布時間:2025/7/14 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ajax PHP 边学边练 之四 表单 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?????? 通過上一篇文章已經(jīng)了解到如何利用Ajax和PHP對數(shù)據(jù)庫進行數(shù)據(jù)讀取,這樣可以動態(tài)的獲取到數(shù)據(jù)庫的最新數(shù)據(jù)。本篇則繼續(xù)介紹通過表單(Form)向數(shù)據(jù)庫中寫入數(shù)據(jù)。

?????? 談到Form就涉及到一個發(fā)送請求方式問題(GET和POST),對于GET和POST的使用和區(qū)別在本文就不詳細說明了,一般對于Web開發(fā)由于POST傳值為隱式且傳輸數(shù)據(jù)量較大所以比較常用。在本例中對functions.js進行下修改,將創(chuàng)建XMLHttp對象程序創(chuàng)建為一個函數(shù)processajax。

function processajax (serverPage, obj, getOrPost, str){ //將創(chuàng)建XMLHttpRequest對象寫到getxmlhttp()函數(shù)中,并獲取該對象 xmlhttp = getxmlhttp (); //GET方式(和前面幾篇一樣) if (getOrPost == "get"){ xmlhttp.open("GET", serverPage); xmlhttp.onreadystatechange = function(){ if (xmlhttp.readyState == 4 && xmlhttp.status == 200){ obj.innerHTML = xmlhttp.responseText; } } xmlhttp.send(null); } //POST方式 else{ //第三個true參數(shù)將打開異步功能 xmlhttp.open("POST", serverPage, true); //創(chuàng)建POST請求 xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=GB2312"); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { obj.innerHTML = xmlhttp.responseText; } } //表單(Form)傳值 xmlhttp.send(str); } }

?

?????? 在下圖中當點擊“Submit”按鈕后會激發(fā)submitform函數(shù)(functions.js),在該函數(shù)中會通過getformvalues函數(shù)檢查Form內(nèi)容是否都填寫完畢,否則提示哪項未填寫。當檢查通過后會調(diào)用process_task.php程序,它會將Form值寫入數(shù)據(jù)庫。

submitform 函數(shù):

function submitform (theform, serverPage, objID, valfunc){ var file = serverPage; //檢查Form值 var str = getformvalues(theform,valfunc); //Form全部填寫 if (aok == true){ obj = document.getElementById(objID); //運行Ajax進行傳值 processajax(serverPage, obj, "post", str); } }

getformvalues 函數(shù):

function getformvalues (fobj, valfunc){ var str = ""; aok = true; var val; //遍歷Form中所有對象 for(var i = 0; i < fobj.elements.length; i++){ if(valfunc){ if (aok == true){ val = valfunc (fobj.elements[i].value,fobj.elements[i].name); if (val == false){ aok = false; } } } str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&"; } //將Form值以String形式返回 return str; }

process_task.php 程序:

<?php require_once ("dbconnector.php"); opendatabase(); //對數(shù)據(jù)預處理 $yourname = strip_tags (mysql_real_escape_string ($_POST['yourname'])); $yourtask = strip_tags (mysql_real_escape_string ($_POST['yourtask'])); $thedate = strip_tags (mysql_real_escape_string ($_POST['thedate'])); //創(chuàng)建Insert語句 $myquery = "INSERT INTO task (name, thedate, description)
VALUES ('$yourname','$thedate','$yourtask')
"; //執(zhí)行SQL語句 if (!mysql_query ($myquery)){ header ("Location: theform.php?message=There was a problem with the entry."); exit; } //返回成功信息 header ("Location: theform.php?message=Success"); ?>

源代碼下載

轉(zhuǎn)載于:https://blog.51cto.com/186067/1280704

總結(jié)

以上是生活随笔為你收集整理的Ajax PHP 边学边练 之四 表单的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。