当前位置: 编程技术>php
本页文章导读:
▪PHP循环语句笔记(foreach,list)
一般foreach用的比较多 代码如下: <?php $price=array('apple'=>10,'orange'=>20,'banner'=>30); foreach($price as $key=>$value) { echo $key.'=>'.$value.'<br>'; } echo '<br>'; ?> 还有个更高级和常见的.........
▪openPNE常用方法分享
代码如下: <?php include_partial('sidemenu',array('form'=>'asdfgasgsad'));?>这句话意思是包含'_sidemenu.php'并往其页面传一系列参数,'_sidemenu.php'页即可直接使用$form变量中的值 <?php op_include_box('vote.........
▪使用php+Ajax实现唯一校验实现代码[简单应用]
首先创建一个Ajax类(Ajax类) 然后新建一个文件form.html --------------------------form.html---------------------------- 代码如下: <script src="/blog_article/ajax.js"></script> <!--引用ajax类--> <script language="javas.........
[1]PHP循环语句笔记(foreach,list)
来源: 互联网 发布时间: 2013-11-30
一般foreach用的比较多
<?php
$price=array('apple'=>10,'orange'=>20,'banner'=>30);
foreach($price as $key=>$value)
{
echo $key.'=>'.$value.'<br>';
}
echo '<br>';
?>
还有个更高级和常见的方法
<?php
$shuiguo=array('apple'=>10,'orange'=>20,'banner'=>30);
while(list($changpin,$jiage)=each($shuiguo))
{
echo "$changpin=>$jiage".'<br>';
}
?>
以前还真没怎么关注下,今天自己动手,还不错,又了解新的东西了,还是自己太菜了,哎
list()函数可以用来一个数组分解成一系列的值,允许为新变量命名。不懂list的点击这里
两段代码输出是一样。
需要注意的是,当使用each()函数时候,数组将记录当前元素。如果希望在相同的脚本中使用两次该数组。就需要使用reset()降当前元素重新设置到数组开始处。
<?php
$price=array('apple'=>10,'orange'=>20,'banner'=>30);
foreach($price as $key=>$value)
{
echo $key.'=>'.$value.'<br>';
}
echo '<br>';
reset($price);
while(list($key,$value)=each($price))
{
echo "$key=>$value","<br>";
}
?>
这样就可以依然使用数组$price咯。
书上有的,作为新手的我,自己动手,敲下看看效果,理解下,写个帖子,方便以后忘记了看看,说的比较肤浅,语言表达不好,见笑了。
<?php
/*
*PHP中的循环语句学习笔记
*一.while循环
if(表达式)
只执行一次一条语句。
while(表达式){
反复执行这个循环体;
}
*二.do-while循环
*三.for循环
*根据循环条件不同有两种类型的循环
*一种:计数循环 for
*另外一种:条件型循环 while do-while //foreach
*几个和循环有关的语句
*break;//可以用于流程控制和循环体,跳出循环。
continue;//只能用于循环体,退出本次循环。 exit;
return;
*写循环尽量不要超过三层。
*循环的流程控制语句尽量不要超过五层。
*/
$num=0;
while($num<100){
echo "这是执行第 {$num} 次输出的结果<br>";
$num++;
}
//
echo '<table border="1" width="800"
align="center">';
echo '<caption><h1>使用一个while循环输
出的表格</h1></caption>';
$i=0;
while($i<1000){
if($i%10==0){
if($i%20==0){
$bg="#ffffff";
}else{
$bg="#cccccc";
}
echo '<tr
onmouseover="lrow(this)" onmouseout="drow
(this)" bgColor="'.$bg.'">';
}
echo '<td>'.$i.'</td>';
$i++;
if($i%10==0){
echo '</tr>';
}
}
echo '</table>';
//
$i=0;
do{
echo "$i :this is do*while <br>";
$i++;
}while($i<10);
//
for(初始化的条件;条件表达式;增量){
循环体;
}
/*
do-while循环就是先执行一次代码,然后判断,而
while循环就是先判断,如果为true就继续循环,为
false就不循环。
*/
//九九乘法表
for($i=1; $i<=9; $i++){
for($j=1; $j<=$i; $j++){
echo "$j x $i =
".$j*$i." ";
}
echo '<br>';
代码如下:
<?php
$price=array('apple'=>10,'orange'=>20,'banner'=>30);
foreach($price as $key=>$value)
{
echo $key.'=>'.$value.'<br>';
}
echo '<br>';
?>
还有个更高级和常见的方法
代码如下:
<?php
$shuiguo=array('apple'=>10,'orange'=>20,'banner'=>30);
while(list($changpin,$jiage)=each($shuiguo))
{
echo "$changpin=>$jiage".'<br>';
}
?>
以前还真没怎么关注下,今天自己动手,还不错,又了解新的东西了,还是自己太菜了,哎
list()函数可以用来一个数组分解成一系列的值,允许为新变量命名。不懂list的点击这里
两段代码输出是一样。
需要注意的是,当使用each()函数时候,数组将记录当前元素。如果希望在相同的脚本中使用两次该数组。就需要使用reset()降当前元素重新设置到数组开始处。
代码如下:
<?php
$price=array('apple'=>10,'orange'=>20,'banner'=>30);
foreach($price as $key=>$value)
{
echo $key.'=>'.$value.'<br>';
}
echo '<br>';
reset($price);
while(list($key,$value)=each($price))
{
echo "$key=>$value","<br>";
}
?>
这样就可以依然使用数组$price咯。
书上有的,作为新手的我,自己动手,敲下看看效果,理解下,写个帖子,方便以后忘记了看看,说的比较肤浅,语言表达不好,见笑了。
代码如下:
<?php
/*
*PHP中的循环语句学习笔记
*一.while循环
if(表达式)
只执行一次一条语句。
while(表达式){
反复执行这个循环体;
}
*二.do-while循环
*三.for循环
*根据循环条件不同有两种类型的循环
*一种:计数循环 for
*另外一种:条件型循环 while do-while //foreach
*几个和循环有关的语句
*break;//可以用于流程控制和循环体,跳出循环。
continue;//只能用于循环体,退出本次循环。 exit;
return;
*写循环尽量不要超过三层。
*循环的流程控制语句尽量不要超过五层。
*/
$num=0;
while($num<100){
echo "这是执行第 {$num} 次输出的结果<br>";
$num++;
}
//
echo '<table border="1" width="800"
align="center">';
echo '<caption><h1>使用一个while循环输
出的表格</h1></caption>';
$i=0;
while($i<1000){
if($i%10==0){
if($i%20==0){
$bg="#ffffff";
}else{
$bg="#cccccc";
}
echo '<tr
onmouseover="lrow(this)" onmouseout="drow
(this)" bgColor="'.$bg.'">';
}
echo '<td>'.$i.'</td>';
$i++;
if($i%10==0){
echo '</tr>';
}
}
echo '</table>';
//
$i=0;
do{
echo "$i :this is do*while <br>";
$i++;
}while($i<10);
//
for(初始化的条件;条件表达式;增量){
循环体;
}
/*
do-while循环就是先执行一次代码,然后判断,而
while循环就是先判断,如果为true就继续循环,为
false就不循环。
*/
//九九乘法表
for($i=1; $i<=9; $i++){
for($j=1; $j<=$i; $j++){
echo "$j x $i =
".$j*$i." ";
}
echo '<br>';
[2]openPNE常用方法分享
来源: 互联网 发布时间: 2013-11-30
代码如下:
<?php include_partial('sidemenu',array('form'=>'asdfgasgsad'));?>这句话意思是包含'_sidemenu.php'并往其页面传一系列参数,'_sidemenu.php'页即可直接使用$form变量中的值
<?php
op_include_box('vote_question_create_box','<strong>asdfasdf</strong>',array('title'=>'创建问题','moreInfo'=>array('创建问题',link_to('创建问题2','@my_index'))));
?>
<?php
op_include_box('vote_question_create_box',get_slot('pager'),array('title'=>'创建问题','moreInfo'=>array('创建问题',link_to('创建问题2','@my_index'))));
?>
'vote_question_create_box'只是一个标记,'<strong>asdfasdf</strong>'或 get_slot('pager')则是要输出到页面上标题下的信息(这个方法里要包含slot只能用get_slot()不能用include_slot(),
而在页面中要包含slot则必须使用include_slot())
第三个数组参数中的键值名称title是固定的,是该段'vote_question_create_box'显示的标题,后面的'moreInfo'键名也是固定键值对应的数组则是罗列显示的内容列表
<?php slot('pager'); ?>设定一个slot段落
<?php echo 'asdfasgsadfasdfaaaaaaaaaaaaaaaaaaaaaa' ?>
<?php end_slot() ?>
<?php include_slot('pager'); ?>包含指定的slot段落,设定的slot段落必须通过包含才能在页面上显示
<?php
op_include_form('vote_question_from',$form,array('title'=>'编辑问题','url'=>url_for('@vote_update?id='.$form->getObject()->getId()),));
?>包含一个表单对象,'vote_question_from'为标识名,$form为对应动作传来的表单对象,第三个数组参数title键值也url键值是固定的,分别对应显示的标题名和表单提交路径
对应动作内容为
<?php
public function executeEdit(sfWebRequest $request){
$object = $this->getRoute()->getObject();
//如果不是作者屏幕上显示404
$this->forward404Unless($this->getUser()->getMemberId() == $object->getMemberId());//$object->getMemberId()为传递过来的id值对应的那条记录的member_id字段值
$this->form = new VoteQuestionForm($object);
//访问此动作路径http://localhost/openpne/web/vote/edit/1
}
?>
<?php op_include_pager_navigation($pager, '@tasks_list?page=%d'); ?>用于分页时前后翻页的超链接
$pager来自动作里的 $this->pager = Doctrine::getTable('VoteQuestion')->getListPager($request->getParameter('page'));
PluginVoteQuestionTable类getListPager()方法里的内容↓
<?php
class PluginVoteQuestionTable extends Doctrine_Table
{
public function getListPager($page = 1,$size = 20)
{
$query = $this->createQuery()->orderBy('updated_at DESC');
$pager = new sfDoctrinePager('VoteQuestion',$size);//创建一个某表的分页对象,并传一个每页显示多少记录值
$pager->setQuery($query);//传一个查询语句对象
$pager->setPage($page);//设返回显示的页数
$pager->init();
return $pager;
}
}
?>
对应前台页面对分页结果集的沥遍
<?php foreach($pager->getResults() as $item): //利用openPNE分页机制获取指定分页结果集并沥遍每一条记录?>
<dl>
<dt><?php echo op_format_date($item->getUpdatedAt(),'f') //'f'代表一种显示格式?></dt><!--op_format_date()方法只是把2011-11-10各种中的‘-'换成汉字年月日-->
<dd><?php echo link_to(sprintf("%s(%d)",$item->getTitle(),count($item->getVoteAnswers())),'@vote_show?id='.$item->getId()) ?></dd><!--$item->getTitle()获取该条记录指定字段title值-->
</dl>
<?php endforeach; ?>
<?php echo link_to('sdsfg','@vote_show?id='.$item->getId()) ?>相当于<a href='/blog_article/vote/show/id/....html'>sdsfg</a>
表名是驼峰模式在数据库里以下划线表示,字段名也是如此
链接的
就算不用方法也可以直接在action="/blog_article/此可直接写web/后的====模块名/动作名====或路由中设定好的web后的路径/index.html"
动作里的
$this->tasksObject = $this->getRoute()->getObject();
$this->getRoute()->getObject();//获取传过来的id参数值对应的表中的那条信息对象可通过get+字段名()获取字段值,如在页面中$tasksObject-getId();
至于如何确定获取的是哪个表则是通过路由类设置该动作路由时确定的,如下例确定的是vote_question表
例
<?php
class opVotePluginFrontendRouteCollection extends sfRouteCollection
{
public function __construct(array $options)
{
parent::__construct($options);
$this->routes = array(
'vote_edit' => new sfDoctrineRoute(
'/vote/edit/:id',
array('module' => 'vote', 'action' => 'edit'),
array('id' => '\d+', 'sf_method' => array('get')),
array('model' => 'VoteQuestion', 'type' => 'object')
),
);
}
}
?>
[3]使用php+Ajax实现唯一校验实现代码[简单应用]
来源: 互联网 发布时间: 2013-11-30
首先创建一个Ajax类(Ajax类)
然后新建一个文件form.html
--------------------------form.html----------------------------
<script src="/blog_article/ajax.js"></script> <!--引用ajax类-->
<script language="javascript" type="text/javascript">
function show(username){
var ajax = Ajax();
var noteobj = document.getElementById("note"); //将id为note的标签对象化
ajax.post("form.php",{username:username},function(data){ //第二个username为需要传递的值
noteobj.innerHTML = data; //data为从服务器端获取的数据
});
}
</script>
<style>
input{font:menu};
</style>
<form action="/blog_article/reg.html" method="post">
username:<input type="text" name="username" onblur="show(this.value)"/><div id="note"></div><br />
password:<input type="password" name="password"><br />
<input type="submit" value="register">
</form>
最后新建一个php文件form.php
--------------------------form.html----------------------------
<?php
header("Content-type:text/html;charset=gb2312"); //设置字符集
$mysqli = new mysqli("localhost","root","123","demo"); //打开demo数据库
$result = $mysqli->query("select * from zhanghao where name='{$_POST["username"]}'");
if($result->num_rows > 0){ //判断是否查询出数据
echo "<font color='red'>用户{$_POST["username"]}已经存在!</font>";
}else{
echo "<font color='green'>用户{$_POST["username"]}可以注册</font>";
}
?>
在浏览器中打开form.html出现下图:
然后新建一个文件form.html
--------------------------form.html----------------------------
代码如下:
<script src="/blog_article/ajax.js"></script> <!--引用ajax类-->
<script language="javascript" type="text/javascript">
function show(username){
var ajax = Ajax();
var noteobj = document.getElementById("note"); //将id为note的标签对象化
ajax.post("form.php",{username:username},function(data){ //第二个username为需要传递的值
noteobj.innerHTML = data; //data为从服务器端获取的数据
});
}
</script>
<style>
input{font:menu};
</style>
<form action="/blog_article/reg.html" method="post">
username:<input type="text" name="username" onblur="show(this.value)"/><div id="note"></div><br />
password:<input type="password" name="password"><br />
<input type="submit" value="register">
</form>
最后新建一个php文件form.php
--------------------------form.html----------------------------
代码如下:
<?php
header("Content-type:text/html;charset=gb2312"); //设置字符集
$mysqli = new mysqli("localhost","root","123","demo"); //打开demo数据库
$result = $mysqli->query("select * from zhanghao where name='{$_POST["username"]}'");
if($result->num_rows > 0){ //判断是否查询出数据
echo "<font color='red'>用户{$_POST["username"]}已经存在!</font>";
}else{
echo "<font color='green'>用户{$_POST["username"]}可以注册</font>";
}
?>
在浏览器中打开form.html出现下图:
注意:需要提前在MySQL数据库中建立一个表“zhanghao”
如果输入已存在的name,则出现如下提示:
如果输入未存在的name,出现如下提示:
最新技术文章: