小问题 新手不会 求帮助?

Ryan20082009 2011-03-22 10:23:36
1、php怎么给button传值(我有一个table他是从数据库的出来的值,每行后面有个修改button按钮,当我点击button按钮时候怎么传值,找到我要处理修改的方法,即控制器里面的方法)。
2、cakephp怎么操作多表(主外键关系)增加,修改,删除,查询。
我是新手 希望给一定思路加上源码!!!
...全文
158 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ryan20082009 2011-03-25
  • 打赏
  • 举报
回复
Notice (8): Undefined index: id [CORE\cake\libs\model\model.php, line 1329]Code | Context $success = (bool)$db->update($this, $fields, $values);
} else {
$fInfo = $this->_schema[$this->primaryKey];$this = Station
Station::$name = "stations"
Station::$belongsTo = array
Station::$useDbConfig = "default"
Station::$useTable = "stations"
Station::$displayField = false
Station::$id = false
Station::$data = array
Station::$table = "stations"
Station::$primaryKey = "id"
Station::$_schema = array
Station::$validate = array
Station::$validationErrors = array
Station::$tablePrefix = ""
Station::$alias = "Station"
Station::$tableToModel = array
Station::$logTransactions = false
Station::$cacheQueries = false
Station::$hasOne = array
Station::$hasMany = array
Station::$hasAndBelongsToMany = array
Station::$actsAs = NULL
Station::$Behaviors = BehaviorCollection object
Station::$whitelist = array
Station::$cacheSources = true
Station::$findQueryType = NULL
Station::$recursive = 1
Station::$order = NULL
Station::$virtualFields = array
Station::$__associationKeys = array
Station::$__associations = array
Station::$__backAssociation = array
Station::$__insertID = NULL
Station::$__numRows = NULL
Station::$__affectedRows = NULL
Station::$_findMethods = array
Station::$City = City object
$data = array(
"add" => array(
"a" => "5"
),
"Station" => array(
"city" => "3",
"station_name" => "//",
"station_name_eng" => "/",
"station_code" => "//",
"created_by" => "///",
"created_on" => "2011-03-25 10:42:54"
)
)
$validate = true
$fieldList = array()
$defaults = array(
"validate" => true,
"fieldList" => array(),
"callbacks" => true
)
$_whitelist = array()
$fields = array(
"city",
"station_name",
"station_name_eng",
"station_code",
"created_by",
"created_on"
)
$options = array(
"validate" => true,
"fieldList" => array(),
"callbacks" => true
)
$field = "modified"
$keyPresentAndEmpty = false
$exists = false
$dateFields = array(
"modified",
"updated",
"created"
)
$db = DboMysql
DboMysql::$description = "MySQL DBO Driver"
DboMysql::$_baseConfig = array
DboMysql::$startQuote = "`"
DboMysql::$endQuote = "`"
DboMysql::$_useAlias = true
DboMysql::$_commands = array
DboMysql::$fieldParameters = array
DboMysql::$tableParameters = array
DboMysql::$columns = array
DboMysql::$index = array
DboMysql::$alias = "AS "
DboMysql::$methodCache = array
DboMysql::$cacheMethods = true
DboMysql::$__bypass = false
DboMysql::$__sqlOps = array
DboMysql::$virtualFieldSeparator = "__"
DboMysql::$connected = true
DboMysql::$fullDebug = true
DboMysql::$error = NULL
DboMysql::$affected = 9
DboMysql::$numRows = 9
DboMysql::$took = 2
DboMysql::$_result = resource
DboMysql::$_queriesCnt = 3
DboMysql::$_queriesTime = 5
DboMysql::$_queriesLog = array
DboMysql::$_queriesLogMax = 200
DboMysql::$_queryCache = array
DboMysql::$__descriptions = array
DboMysql::$_sources = array
DboMysql::$connection = resource
DboMysql::$config = array
DboMysql::$configKeyName = "default"
DboMysql::$_transactionStarted = false
DboMysql::$cacheSources = true
DboMysql::$results = resource
DboMysql::$map = array
$updateCol = "created"
$result = true
$values = array(
"3",
"//",
"/",
"//",
"///",
"2011-03-25 10:42:54"
)
$v = array(
"city" => "3",
"station_name" => "//",
"station_name_eng" => "/",
"station_code" => "//",
"created_by" => "///",
"created_on" => "2011-03-25 10:42:54"
)
$n = "Station"
$y = "2011-03-25 10:42:54"
$x = "created_on"
$count = 6
$success = true
$created = false
$cache = array()Model::save() - CORE\cake\libs\model\model.php, line 1329
CitiesController::addStation() - APP\controllers\cities_controller.php, line 98
Dispatcher::_invoke() - CORE\cake\dispatcher.php, line 204
Dispatcher::dispatch() - CORE\cake\dispatcher.php, line 171
[main] - APP\webroot\index.php, line 83
Warning (2): Cannot modify header information - headers already sent by (
这个是什么错误?
来得查理 2011-03-25
  • 打赏
  • 举报
回复
onclick="doEdit(<?php $result['City']['city_id'];?>)"
Ryan20082009 2011-03-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 daly2008 的回复:]
onclick="doEdit(<?php $result['City']['city_id'];?>)"

少个echo


<style >
.input_tel {
border:0 none;
font-family:Arial;
font-weight:bold;
width:100px;
}
</style>
<script type="text/javasc……
[/Quote]
我的问题:关联表增加 一(城市表)对多(站点表)
这是增加页面:
<div id="add" value="1" style="display:none">
<form method="post" action="<?php echo $html->url('/cities/view');?>" id="addForm" name="addForm" onsubmit="return checkSend(this);">
<table class="" >
<tr>
<input type='hidden' value='5' name='data[add][a]'>
<input type='hidden' value='<?php echo $idresults[0]['City']['city_id']?>' name='data[Station][city]' id="station_city">
<td align="left" valign="top" style="padding-top:0px;padding-left:0px;"><input name="data[Station][station_name]" style="" type="text" id="station_name" size="15"></td>
<td align="left" valign="top" style="padding-top:0px;padding-left:90px;"><input name="data[Station][station_name_eng]" style="" type="text" id="station_name_eng" size="15"></td>
<td align="left" valign="top" style="padding-top:0px;padding-left:50px;"><input name="data[Station][station_code]" style="" type="text" id="station_code" size="15"></td>
<td align="left" valign="top" style="padding-top:0px;padding-left:10px;"><input name="data[Station][created_by]" style="" type="text" id="station_created_by" size="15"></td>
<td align="left" valign="top" style="padding-top:0px;padding-left:15px;"><input name="data[Station][created_on]" style="" type="text" id="station_created_on" size="15"></td>
<td valign="top" style="padding-top:0px;padding-left:30px;"><input type="submit" value="保存"></td>
</tr>
</table>
</form>
</div>
这是控制器:
if(!empty($this->data))
{
$city=$this->Station->save($this->data);
if(!empty($city))
{
// 新建用户的ID可以通过$this->City->city_id访问到。
//$this->data['Station']['city']=$this->City->city_id;
// 由于一个City hasMany 一条Station,于是我们可以通过City模型对Station进行访问:
//$this->City->Station->save($this->data);
}
}
他可以把数据保存到数据库但是页面还是会出错.
另外执行删除站点时候是不是直接传站点表id 就可以了 但是我的为什么不行?
daly2008 2011-03-23
  • 打赏
  • 举报
回复
onclick="doEdit(<?php $result['City']['city_id'];?>)"

少个echo


<style >
.input_tel {
border:0 none;
font-family:Arial;
font-weight:bold;
width:100px;
}
</style>
<script type="text/javascript">
function changeMobile(){
document.getElementById("owner_mobile").className = "textfield";
document.getElementById("owner_mobile").readOnly = false;
}

</script>

<input class="input_tel" type="text" size="25" name="owner_mobile" id="owner_mobile" dataType="string" readonly="readonly" value="18712578952" />
<a href="javascript:changeMobile()" class="a_3ab7e7_11" title="修改" onclick="changeMobile()">修改</a>

上面是个例子,可能不是你所希望。你可以照着修改你的需要的.
页面不跳转,和php交互。你就用jquery吧.比较方便好用.
Ryan20082009 2011-03-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 daly2008 的回复:]

你不是从数据库中取出数据来了吗?
id我只是说了一个例子。你可以输出别的值。就通过正常的php输出就可以了.
在你的table中既然可以输出别的值。那这个id当然也可以输出了.
[/Quote]
你看看好像不行:
function doEdit(edit_id)
{
var v=edit_id;
window.location.href = "/cities/modify/"+v;
}
这个是table
<table class="TABLE1" id="cityButton">
<input type='hidden' value='' name='data[add][a]'>
<tr align="center" style="font-weight:bold" >
<td>名称</td>
<td>英文名</td>
<td>编码</td>
</tr>
<?php
foreach($city as $result){
?>
<tr>
<td class="editAble textEditor" orig="AbletextEditor"><?php echo $result['City']['city_name'];?></td>
<td class="editAble textEditor" orig="AbletextEditor1"><?php echo $result['City']['city_name_eng'];?></td>
<td><?php echo $result['City']['city_code'];?></td>
<td><input type="submit" value="修改" onclick="doEdit(<?php $result['City']['city_id'];?>)" id="cityButton"></td>

<td><?php echo $html->link('修改',"./modify/".$result['City']['city_id']);?></td>
<td><?php echo $html->link('删除',"./delete/".$result['City']['city_id'],null,'是否确认删除?');?></td>
<td><?php echo $html->link('查看信息',"/cities/view/".$result['City']['city_id']);?></td>
</tr>
<?php }?>
</table>

另外我还有一个问题,当我点击修改按扭时候,我想让该行能变成可编辑,并且保存到数据库。(仅限该行不跳转另外一个页面。。。)
daly2008 2011-03-22
  • 打赏
  • 举报
回复
1.写个button的onclik事件.如onclick="doEdit(id值)"

fucntion doEdit(id){
window.location.href = "你的控制器/action/"+value;//至于这个js怎么写有多种方法。自己写吧.还可以用jquery等等
}
2.cakephp中关联可以看看手册.介绍的比较详细哦.hasone,hasmany,belongsto等.
daly2008 2011-03-22
  • 打赏
  • 举报
回复
你不是从数据库中取出数据来了吗?
id我只是说了一个例子。你可以输出别的值。就通过正常的php输出就可以了.
在你的table中既然可以输出别的值。那这个id当然也可以输出了.
随行的太阳 2011-03-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 daly2008 的回复:]
1.写个button的onclik事件.如onclick="doEdit(id值)"

fucntion doEdit(id){
window.location.href = "你的控制器/action/"+value;//至于这个js怎么写有多种方法。自己写吧.还可以用jquery等等
}
2.cakephp中关联可以看看手册.介绍的比较详细哦.hasone,hasmany,belon……
[/Quote]

向一楼学习。
Ryan20082009 2011-03-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 daly2008 的回复:]

1.写个button的onclik事件.如onclick="doEdit(id值)"

fucntion doEdit(id){
window.location.href = "你的控制器/action/"+value;//至于这个js怎么写有多种方法。自己写吧.还可以用jquery等等
}
2.cakephp中关联可以看看手册.介绍的比较详细哦.hasone,hasmany,belo……
[/Quote]请问那button的onclik事件.如onclick="doEdit(id值)" 里面id值怎么传?
window.location.href = "你的控制器/action/"+value; 控制器是全名吗 如a.ctp 这个value 又是怎么传?
721913298 我的号加我聊聊 谢谢

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧