无法获取POST或自动填充的提交按钮来填写

时间:2010-02-09 19:35:59

标签: php debugging autocomplete

我的应用程序更新了一些框架以及jquery,现在不起作用。我不知道该怎么做,因为我没有得到有用的信息回调试。这就是我要找的东西:

GIVEN:我在选定的页面上有一个文本字段和提交按钮 时间:我在文本框中输入几个字母 那么:我希望自动填充功能与可用的帐户匹配数据库中的值。

GIVEN:我看到了一个我要添加到列表中的值 时间:我点击“添加” 那么:我希望通过Ajax看到面板中显示的选定值(无需刷新页面):

以下是自动填充的代码:

    $this->btnAddOffer = new QButton($this->pnlAddOffer,"btnAddOffer");

    $this->btnAddOffer->CssClass =  "button";

    $this->btnAddOffer->Text = "Add";
    $this->txtNewOffer->AddAction(new QEnterKeyEvent(), new QAjaxAction('btnAddOffer_Click'));
    $this->txtNewOffer->AddAction(new QEnterKeyEvent(), new QTerminateAction());

    $this->btnAddOffer->AddAction(new QClickEvent(), new QAjaxAction('btnAddOffer_Click'));

protected function btnAddOffer_Click($strFormId, $strControlId, $strParameter) {
    if($this->txtNewOffer->Text == ''){

        $this->txtNewOffer->Warning = "You must be enter a offer company name!";
        return false;

    }
    $objUser = unserialize($_SESSION['User']);

    $objAccount = Account::LoadByName($this->txtNewOffer->Text);

    if($objAccount){
        $objUser->AccountId = $objAccount->Id;
        $objOffer = Offer::LoadByUserOwnerIdAccountId($objUser->Id,$objAccount->Id);
        if($objOffer){

            QApplication::DisplayAlert("This account already exists!!");

        } else {

            $objOffer = new Offer();
            $objOffer->UserOwnerId = $objUser->Id;
            $objOffer->AccountId = $objAccount->Id;
            $objOffer->Save();

            #QApplication::DisplayAlert("New account was added successfully");
        }
    }

我得到的当前结果:

  • 当我输入文本框时,我看到一个带有以下Firebug的空表单:

alt text http://img707.imageshack.us/img707/5102/screenshot2162010102232.png

我不知道该怎么做,因为我没有信息来调试正在发生的事情。

这是一个使用Firebug的屏幕截图,它是围绕输入框和提交按钮生成的代码:

alt text http://img535.imageshack.us/img535/9148/screenshot292010113245a.png

控制器中的相关代码:

更多细节可以在这里找到:

http://github.com/allyforce/AF-upload/blob/master/Library/Offer.class.php

3 个答案:

答案 0 :(得分:1)

您是否为要调用的事件定义了一个方法。查看截图,您使用的是QAjaxAction而不是QServerAction,但是您告诉它要调用的方法,例如: -

$this->btnAddOffer->AddAction(new QClickEvent(), new QAjaxAction('btnAddOffer_click'));

然后

protected function btnAddOffer_click()
{
    // submit code you want here
}

答案 1 :(得分:0)

你有任何可能隐藏id“btnAddOffer_ctl”的javascript或CSS。这将是我要搜索的第一件事。在源代码中找到字符串 bntAddOffer_ctl 。有可能此ID将其可见性 CSS设置为隐藏

您还可以使用可能如下所示的JavaScript部分:

document.getElementByid('btnAddOffer_ctl').style.visibility = 'hidden'; 

document.btnAddOffer_ctl.visibility = 'hidden'; 

希望有所帮助。

答案 2 :(得分:0)

将按钮类型更改为提交而不是“按钮”(或确保分配给“按钮”的任何操作都执行您想要的操作 - 因为我们无法看到该函数应该使用此图片调用的内容)