简而言之,userID正在数据库中保存,而代码中的任何其他位置都不存在。我是PHP和Joomla的初学者,刚刚完成了一个很大程度上很简单的组件:
组件说明
问题描述 - 如果用户根本没有第1-9章的条目,则保存用户ID为127。 127来自哪里?没有线索。如果在一章中有一个条目,那么它可以正常工作。
代码段:
要保存:(view.html.php)
JToolBarHelper::apply('chapters.apply', 'JTOOLBAR_APPLY');
JToolBarHelper::save('chapters.save', 'JTOOLBAR_SAVE');
XML (chapters.xml)
<field name="chapter_userid"
type="text"
label="Student UserID"
description=""
size="10"
readonly="true"
class="readonly"
/>
编辑表格:(edit.php)
<li>
<?php echo $this->form->getLabel('chapter_userid'); ?>
<?php echo $this->form->getInput('chapter_userid', null, $this->UserID ); ?>
</li>
HTML输出,例如用户 170 (在数据库中保存为127,Joomla表示已正确保存):
<input type="text" name="jform[chapter_userid]" id="jform_chapter_userid" **value="170"** class="readonly" size="10" readonly="readonly"/>
我做过的事:
进行调试
多次添加值以查看触发此操作的内容。
搜索“127”的整个html输出(主屏幕和edit.php)并启用调试 - 没有
在编辑屏幕顶部使用了get_defined_vars(),搜索了127 - 没有。
拉出了很多头发
我不明白为什么如果正确地将userID = 170传递给html输出它被保存为127.有没有人见过这样的东西?还有什么我可以做调试吗?要检查的地方?我怀疑它在Joomla的记忆中存在某种价值,但我也会认为get_defined_vars会以某种方式吐出来。或者某种二进制2 ^ 8偏移1(好吧,所以现在我在MIDI领域,但我很绝望)。
谢谢!
答案 0 :(得分:0)
127值真的很烦我,经历了所有输出并且找不到任何不合适的地方 - 事实证明我不仅设置了错误的数据类型,而且我错误地知道数据类型是什么:
http://matthom.com/archive/2006/11/28/mysql-integer-columns-and-display-width
我期待不超过三位数值,所以将它设置为TinyInt(4)似乎是安全的,因为()与值的长度无关,只与显示长度无关。
希望这有助于其他人。