Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Nette-代码段更新_Javascript_Php_Ajax_Nette - Fatal编程技术网

Javascript Nette-代码段更新

Javascript Nette-代码段更新,javascript,php,ajax,nette,Javascript,Php,Ajax,Nette,我对代码段更新有问题。在更改了选择框中的选择之后,我在另一个选择框中重新绘制了选项的内容,但代码片段没有更新 拿铁: <form class="df-checkout"> ... <select n:href="getHraci!" name="domaci" id="domaci" class="form-control"> <option value="">Vybrat</option> <option n:foreac

我对代码段更新有问题。在更改了选择框中的选择之后,我在另一个选择框中重新绘制了选项的内容,但代码片段没有更新

拿铁:

<form class="df-checkout">
...

<select n:href="getHraci!" name="domaci" id="domaci" class="form-control">
    <option value="">Vybrat</option>
    <option n:foreach="$tymy as $tym" value="{$tym->getId()}">
        {$tym->getNazev()}
    </option>
</select>

...

<div class="row helpers hidden">
    <select n:snippet="hraciDomaci" class="form-goly-domaci-select form-control">
        <option></option>
        <option n:foreach="$hraciDomaci as $hrac" value="{$hrac->getId()}">
            {$hrac->getPrijmeni()} {$hrac->getJmeno()}
        </option>
    </select>

    <input type="text" class="form-goly-input form-control">
</div>
控制器:

public function handleGetHraci($strana, $tymId)
{
    $tym = $this->tymManager->getTymRepository()->find($tymId);
    $muzstvo = $this->tymManager->getMuzstvoRepository()->findBy(["nazev" => self::HLAVNI_TYM]);
    $hraci = $this->hracManager->getHracRepository()
                ->findBy(["tym" => $tym, "muzstvo" => $muzstvo], ["prijmeni" => "ASC", "jmeno" => "ASC"]);

    if($this->isAjax()){
        $this->template->hraciDomaci = $hraci;

        $this->redrawControl('hraciDomaci');
    }
}
表单尚未创建和处理,因此我所做的第一个选择框是临时的,带有代码段的选择框独立于表单。我用它来复制。 JS正确调用处理程序,如果我在redrawControl之前转储$this->template->hraciDomaci,数据就在那里,但redrawControl不会做任何事情。但是,页面下方的Tracy栏中添加了一行新的流程。 我的调试器中没有bug,进程状态为200,但响应仅包含:

{"state":[],"snippets":{"snippet--hraciDomaci":"\t\t\t\t\t\t\t\t\t\t<option></option>\n"}}
我尝试使用$.get而不是$.nette.ajax,在snippetArea中包装,我通常在{block content}中有这段代码,所以snippetArea应该不需要。带有初始化$.nette.init的nette.ajax.js;我也有


非常感谢您的建议。

检查您是否没有在render*方法中重写hraciDomaci变量,例如演示者中的renderDefault

您的ajax代码在调用后不会执行任何操作。php需要返回html,而ajaxcone必须插入它。另外,对于.bind,也不推荐使用。on@mplungjan不,它正在工作,但正如下面的评论所描述的,我遇到了一个问题。不过,谢谢你。请不要客气。我会改变这一点。我不知道这是一个问题,它是什么ajax请求,并且没有重新加载页面。我在render*方法中将空数组设置为变量。固定的谢谢!
{"state":[],"snippets":{"snippet--hraciDomaci":"\t\t\t\t\t\t\t\t\t\t<option></option>\n"}}