foreach退出循環(新人請多多關照~)
阿新 • • 發佈:2017-06-08
pos name 後臺 exist 所有 each ota time 編號
今天做一個關於人員信息修改的頁面時,我用foreach獲取數據庫數據時發現,用if else判斷輸入的內容時,會一個一個的做對比,導致錯誤提醒時會彈出與數據庫內容行數相同條的提醒,最後發現將數據直接命為全局變量便輕松的解決了這個問題.
var totaldata; $(function(){ $("#cha").click(function() { validateForm(); }); }); /** * 修改內容判斷 */ function validateForm(){ var i=$(‘#idd‘).val(); var isexist=false; totaldata.cont.forEach(function(val,index){ if(i==val.id){ isexist=true; } });
首先獲取到input寫入的內容,用來和數據庫數據作對比,如果相同,再進行下一步操作.聲明一個用來判斷數據是否相同的變量isexist,賦值為false,如果數據相同,將false變為true.
if (isexist){ var n=$(‘#name‘).val(); var a=$(‘#age‘).val();var s=$(‘#sex‘).val(); var ic=$(‘#idCard‘).val(); var q=$(‘#QQ‘).val(); var p=$(‘#phone‘).val(); var ps=$(‘#post‘).val(); var ind=$(‘#inductionTime‘).val(); var e=$(‘#education‘).val(); if(!(i&&n&&a&&s&&ic&&q&&p&&ps&&ind&&e)){ alert(‘不能為空!‘); } else if(a > 100 ){ alert("年齡不對"); } else if(s!=‘男‘&&s!=‘女‘ ){ alert("性別不對"); } else if(!ic.match(/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/)){ alert("身份證不對"); } else if(q> 9999999999 ){ alert("QQ號不對"); } else if(!p.match(/^1[34578]\d{9}$/)){ alert("電話號碼不對"); } else{ alert(‘修改成功!‘); h(i,n,a,s,ic,q,p,ps,ind,e); } } else{ alert(‘編號不存在!‘); } }
如果isexist值為true,那麽進行下一步獲取頁面上所有input的value值,如果有一個為空,那麽就會提示錯誤信息,下面的if else都是錯誤判斷的.
kk(); function kk(){ $.ajax({ url:‘http://192.168.0.172/show‘, dataType:‘jsonp‘, success:function(data){ totaldata=data; }, error:function(err){ console.log(err); } }) }
這是從數據庫獲取到的內容,我將獲取到的內容設為了全局變量(圖一),這樣便能直接在外面使用數據庫數據.
/** * 修改後的數據傳到後臺 */ function h(id,name,age,sex,idCard,QQ,phone,post,inductionTime,education){ $.ajax({ url:‘http://192.168.0.172/modify‘, data:{id:id,name:name,age:age,sex:sex,idCard:idCard,QQ:QQ,phone:phone,post:post,inductionTime:inductionTime,education:education}, dataType:‘jsonp‘, success:function(data){ console.log(data); }, error:function(err){ console.log(err); } }) }
最後將判斷完成的數據傳輸到數據庫,完成修改!
(如果大佬有其他更好的方法歡迎與我多多交流= =,感激不盡!)
foreach退出循環(新人請多多關照~)