JQ尋找元素是否存在
我們知道,jQuery選擇器獲取頁面的element時,無論element是否存在,都會返回一個對象。例如:
var my_element = $("#element_Id" )
此時的變量my_element就是一個對象,既然是一個對象,這個對象就具有length的屬性,因此,用以下代碼可以判斷元素(對象)是否存在:
alert("element is exist.");
}else{
alert("element not be found");
}
這是自己寫的基本PHP的mysql寫法。要安全的mysqli寫法有空再加上來。
很好用喔!不用再一個字一個字key重複的文字了。
*select傳統用法:
$Q = "select 欄位A,欄位B from 資料表 其他條件";
$Q = mysql_query($Q);
//若輸出多筆
while( list($A,$B) = mysql_fetch_row($Q) )
{
echo $A;
echo $B;
}
//若輸出一筆
list($A,$B) = mysql_fetch_row($Q) ;
echo $A;
echo $B;
——
*我的用法:
$j = new sql;
//多筆查詢(用在動態顯示,0~n筆)
$list = $j->select("id , title" , "table" , "");
if($list != 0) //若資料庫沒有資料會回傳0
{
foreach( $list as $row )
{
echo $row['id'];
echo $row['title'];
//陣列row裡面的key可以直接對應欄位名稱。不用再另外取名。
}
}
//確定只要取一筆資料請用這個selectone 若用select會有陣列問題存在。
$row = $j->selectone("id , title" , "table" , "where id = 1");
if( $row != 0 )
echo $row['id'];
//若不小心打錯而產生錯誤,可以快速檢察SQL指令。在後面多打1,例如
$j->select("欄位名稱" , "資料表" , "其他條件" , 1 ); //輸入1會終止後續輸出,這是方便用來檢視SQL程式碼錯誤。
//其他用法,請參考class裡面的註解說明囉!
$j->insert(); //新增
$j->update(); //修改
$j->delete(); //刪除
$j->truncate(); //清空
$j->num_rows() //計算有多少列
//若要計算有多少列 ,也可以用這種方法
$list = $j->select("id , title" , "table" , "");
echo count( $list );
/*================使用資料庫Mysql的類別開始==================*/
class sql
{
//執行
function query($select,$from,$else,$returnSQLstring=0)
{
$Q="select $select from $from $else";
if($returnSQLstring==0)
$Q=mysql_query($Q) or die("SQL查詢敘述錯誤!");
else
die($Q);
return $Q;
}
//查詢(欄位,表格,from之後的其他敘述或是限制),使用loop適合
function select($select,$from,$else,$returnSQLstring=0)
{
$this->recruit = $this->query($select,$from,$else,$returnSQLstring);
$num = $this->num_rows($this->recruit); //計算數量
//不同筆數會回傳不同的形式
if($num==0) //沒有資料
{
return 0;
}
elseif($num==1) //如果只有一筆 需使用limit限定避免筆數時多時一,不建議使用!!!
{
//第一種
//return mysql_fetch_row($this->recruit);
//第二種
$datalist=array();
while($row=mysql_fetch_array($this->recruit))
{
array_push($datalist,$row);
}
return $datalist;
}
elseif($num>=2)
{
$datalist=array();
while($row=mysql_fetch_array($this->recruit))
{
array_push($datalist,$row);
}
return $datalist;
}
}
//取出單列資料,不是使用loop時(已事先確定只取出一筆)
function selectone($select,$from,$else,$returnSQLstring=0)
{
$this->recruit = $this->query($select,$from,$else,$returnSQLstring);
$num = $this->num_rows($this->recruit); //計算數量
if($num==0) //沒有資料
return 0;
if($num>1)
return die("限定只能取出一筆資料");
else
{
$datalist=array();
while($row=mysql_fetch_array($this->recruit))
{
array_push($datalist,$row);
}
$datalist = $datalist[0];
return $datalist;
}
}
//新增
function insert($inserttable,$insertfile,$val,$returnSQLstring=0)
{
$Q="insert into {$inserttable}({$insertfile})
values({$val})";
if($returnSQLstring==0)
{$Q = mysql_query($Q) or die("SQL新增敘述錯誤!");}
else
{die("$Q");}
return $Q;
}
//修改
function update($updatetable,$setfile,$else,$returnSQLstring=0)
{
$Q="update $updatetable
set $setfile
$else";
if($returnSQLstring==0)
$Q = mysql_query($Q) or die("SQL修改敘述錯誤!");
else
die($Q);
return $Q;
}
//刪除
//為了避免忘記設定條件而導致刪除所有資料,在此限制一定要使用where以卻保安全
//若要一次刪除所有資料,請改用清空。
function delete($deletetable,$where,$returnSQLstring=0)
{
$Q="delete from {$deletetable}
where {$where}";
if($returnSQLstring==0)
$Q = mysql_query($Q) or die("SQL刪除敘述錯誤!");
else
die($Q);
return $Q;
}
//清空
function truncate($table,$returnSQLstring=0)
{
$Q="truncate {$table}";
if($returnSQLstring==0)
$Q = mysql_query($Q) or die("SQL清空敘述錯誤!");
else
die($Q);
}
//計算有多少筆資料
function num_rows($query_recruit)
{
$num = mysql_num_rows($query_recruit);
return $num;
}
}
/*================取出資料庫Mysql的類別結束==================*/
<?
/*
正三角形排列,可依照指定的列數符合第一排一顆、第二排兩顆、第三排三顆依序排列下去。
本程式省略使用者輸入、傳送與接收,直接寫主程式碼。可以應用在其他不同的程式語言。
*/
//1.控制要顯示的列數
//2.輸出星星之前的空白個數
//3-1.判斷該列是輸出一顆星星還是輸出多顆星星
//3-2.若多顆星星,就必須輸出兩顆星之間的空白,並在迴圈判斷是否到結尾了
//3-3.若到結尾,因為不必再輸出星星,所以也不需要輸出空白
$row="5"; //指定要的總列數
$row-=1;//陣列中起始值從0開始(從0開始的話可以容易看出公式)
for($y=$row;$y>=0;$y–)//控制所有的列數,也就是用地檢的方式給他編號下去。如:43210列。將y遞減,是方便星星左邊空白顯示的判斷
{
for($x=0;$x<=$y-1;$x++)//星星左邊需要空白的個數。終止條件:當該列顆數小於等於指定的「列數-1」(這是我自己推出來的公式)
{
echo " "; //由以上判斷,利用迴圈在這列中輸出一或數個空白
}
if($y==$row)//如果正要顯示的列編號等於指定要的總列數
{
echo"●";//只顯示星星
}
else if($y<=$row-1 && $y>=0)//若該列編號等於總列數的下一列編號(如第4列) 且 該編號也大於等於0
{
for($a=0;$a<=$row-$y;$a++)//從0開始算起,並限制條件:總列數(如4)減去該列的編號值(如321列)
{
//顯示星星
echo"●";
$next=$a+1;//星星之後是否要有空白
if($next<=$row-$y) //每列最後一顆星星之後會有空白,但為了更完美,在此控制不需要輸出空白
{echo " ";}
}
}
echo"<br />";//段行
}
?>
這是自己寫的function,如果有人需要PHP寫法的就直接拿去套用或修改吧!
說明:
1.直接使用AptPg();,不用echo
2.用法>> AptPg(資料總數目, 每頁要顯示的筆數, 起始頁碼, 數字的網址連結 [,網址夾帶的變數])
<?
//——————–start
function AptPg($AptPg_AllList, $AptPg_OnePgNum, $AptPg_NowPg, $AptPg_Href, $AptPg_BewVal="")
{
if(!empty($_GET[AptPg_NowPg])) //如果不是第一次進入頁面,則網址應該會有目前在第幾頁的參數值。
{ $AptPg_NowPg=$_GET[AptPg_NowPg]; } //將$_GET[AptPg_NowPg]的值取代預設的「$AptPg_NowPg=1」
/*===========先算出總共要分多少頁===============*/
$Count=$AptPg_AllList/$AptPg_OnePgNum ;
$AptPg_AllPg=ceil($Count); //無條件進位
for($a=1;$a<=$AptPg_AllPg; $a++)//顯示各頁的數字
{
if($AptPg_AllPg==1)//當總頁數只有一頁時不顯示
{
continue;
}
elseif($AptPg_AllPg!=1)
{
if($a!=$AptPg_NowPg)//如果現在的頁數不等於該數字,則顯示連結
{
if($AptPg_BewVal!="") //未指定變數值
{$MixAptPg_BewVal="&".$AptPg_BewVal;}
else
{unset($MixAptPg_BewVal);} //拋棄變數
?>
<a href="<?="$AptPg_Href";?>?AptPg_NowPg=<?="$a"?>&AptPg_OnePgNum=<?="$AptPg_OnePgNum";?><?="$MixAptPg_BewVal";?>">
<?="$a";?>
</a>
<?
}
elseif($a==$AptPg_NowPg)
{
echo" "."$a"." ";
}
}
}
}
//———————————End
//——————————–範例開始
$AptPg_AllList=20; //總筆數
$AptPg_OnePgNum=4; //每頁要顯示幾筆資料
$AptPg_NowPg=2; //起始在第幾頁
$AptPg_Href=""; //網址
$AptPg_BewVal=""; //網址要夾帶的變數
AptPg($AptPg_AllList,$AptPg_OnePgNum,$AptPg_NowPg ,$AptPg_Href, $AptPg_BewVal);
//——————————–範例結束
?>
配合Jquery來實現圖片輪播的時候,可以在Div裡面利用PHP迴圈讀取圖片檔案。
scandir()是PHP5以後才有。另外也可以用
$list=scandir("PageData/IndexImg"); /*scandir()是用來讀取目錄的內容*/
$class="1";
foreach($list as $value)
{
if(is_file("PageData/IndexImg"."/".$value))//is_file()檢查是否為一般檔案
{
?>
<img width="340px" src="PageData/IndexImg/<?="$value";?>"
alt="<?="$value";?>"
<?
if($class==1)//只要在第一張圖片顯示class屬性
{
?>
class="active"
<?
}
?>
/>
<?
$class="$class"+1;
}
}