1、php怎么给button传值(我有一个table他是从数据库的出来的值,每行后面有个修改button按钮,当我点击button按钮时候怎么传值,找到我要处理修改的方法,即控制器里面的方法)。
  2、cakephp怎么操作多表(主外键关系)增加,修改,删除,查询。
        我是新手 希望给一定思路加上源码!!!

解决方案 »

  1.   

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

  2.   

    请问那button的onclik事件.如onclick="doEdit(id值)" 里面id值怎么传?
    window.location.href = "你的控制器/action/"+value;  控制器是全名吗 如a.ctp 这个value 又是怎么传?
    721913298 我的号加我聊聊 谢谢
      

  3.   

    你不是从数据库中取出数据来了吗?
    id我只是说了一个例子。你可以输出别的值。就通过正常的php输出就可以了.
    在你的table中既然可以输出别的值。那这个id当然也可以输出了.
      

  4.   

    你看看好像不行:
    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>另外我还有一个问题,当我点击修改按扭时候,我想让该行能变成可编辑,并且保存到数据库。(仅限该行不跳转另外一个页面)
      

  5.   

    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吧.比较方便好用.
      

  6.   

    我的问题:关联表增加 一(城市表)对多(站点表)
    这是增加页面:
    <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 就可以了 但是我的为什么不行?
      

  7.   

    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 (
    这个是什么错误?
      

  8.   

    onclick="doEdit(<?php $result['City']['city_id'];?>)"