应用程序/控制器/ Actionscontroller.php创建使用下拉菜单使用MySQL查询
<?php
App::uses('AppController', 'Controller');
class ActionsController extends AppController {
public Function index(){
App::import('Model', 'ConnectionManager');
$con = new ConnectionManager;
$cn = $con->getDataSource('default');
$tablequery="SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA='cakephp_db' AND TABLE_NAME != 'report'";
$this->set('table',$cn->query($tablequery));
}
}
?>
应用程序/浏览/操作/ index.ctp
<fieldset>
<table>
<tr><th><td>OR</td></th></tr>
<tr>
<th>CHOOSE EXISTING DATA</th>
<td>
<?php echo $this->Form->create('table',array('type' => 'get'));
echo $this->Form->select('table ', $table,['empty' => 'choose one']);?>
<?php echo $this->Form->end('submit'); ?>
</td>
</tr>
</table>
</fieldset>
应用程序/模型/动作返回的数据.php
<?php
App::uses('AppModel', 'Model');
class Action extends AppModel {
public $validate = array(
'table'=> array(
'required' => array(
'rule'=> 'notBlank',
'message' => 'atleast select one table'
)
)
);
}
?>
我需要这种格式的结果。样本输出我写
<select name="field">
<option value="">(choose one)</option>
<option value="0">1</option>
<option value="1">2</option>
<option value="2">3</option>
<option value="3">4</option>
<option value="4">5</option>
</select>
但我正在逐渐以这种格式输出;通过运行此code.Help我解决这个问题。
<select name="table " id="tableTable">
<option value="">choose one</option>
</optgroup>
<option value="TABLE_NAME">Employee</option>
<optgroup label="TABLES">
<optgroup label="1">
</optgroup>
<option value="TABLE_NAME">House_Price</option>
<optgroup label="TABLES">
</optgroup>
<optgroup label="2">
</optgroup>
<option value="TABLE_NAME">insurence</option>
<optgroup label="TABLES">
</optgroup>
<optgroup label="3">
</optgroup>
<option value="TABLE_NAME">posts</option>
<optgroup label="TABLES">
</optgroup>
<optgroup label="4">
</optgroup>
<option value="TABLE_NAME">topics</option>
<optgroup label="TABLES">
</optgroup>
<optgroup label="5">
</optgroup>
<option value="TABLE_NAME">users</option>
<optgroup label="TABLES">
</optgroup>
<optgroup label="6">
</optgroup>
<option value="TABLE_NAME">visualizations</option>
<optgroup label="TABLES">
</optgroup>
</select>
为什么在你的代码中使用原始查询。使用'find('list')'而不是https://book.cakephp.org/2.0/en/models/retrieving-your-data.html#find-list –
这里我从信息模式获取内容而不是从table.so我写了查询。 – Manasa