You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JPHP表单开发问题:点击按钮后标签仅显示Object而非输入字符串

解决JPHP中追加输入框内容到标签显示“Object”的问题

问题根源很明确:你直接把输入框控件对象赋值给了变量,而非获取它的文本内容:

  • 代码里$GLOBALS['tableName'] = $this->edit;这行,是把整个输入框控件存进了变量,不是用户输入的字符串
  • 当Element::appendText()接收控件对象时,会默认把对象转成字符串,JPHP里控件对象的默认字符串表示就是“Object”,所以标签才会显示这个内容

修改方案很简单,只要获取输入框的文本值就行:

  • 调用输入框控件的getValue()方法(JPHP的UX输入控件通用获取值的方法)来拿到用户输入的内容
  • 可以去掉不必要的全局变量,直接把值传给appendText,让代码更简洁

修改后的完整代码:

class SetTableName extends AbstractForm{
    /** 
     * @event button.click 
     */
    function doButtonClick(UXMouseEvent $e = null){
        // Generated
        $e = $event ?: $e; // legacy code from 16 rc-2
        // 获取输入框的文本内容
        $inputContent = $this->edit->getValue();
        Element::appendText($this->form('MM')->label, $inputContent);
        app()->hideForm('SetTableName');
    }
}

如果你的输入框控件类型特殊,getValue()不生效,可以查看对应控件的文档,尝试用getText()方法获取内容,不过大部分JPHP UX输入控件都是用getValue()来获取用户输入的文本。

内容的提问来源于stack exchange,提问作者R R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 11:17:05