0

新しい Zend Framework ベースのプロジェクトに latexrender (http://www.mayer.dial.pipex.com/tex.htm) を含めることができましたが、ajax ベースのプレビュー ストリップの "+" 記号を除いて、すべて正常に動作しているようです。何らかの理由で私の式。

テキストエリアの例を含む私のhtmlフラグメントは次のとおりです。

<dt id="formula-label"><label for="formula" class="required">Formula:</label></dt>
<dd id="formula-element">
<textarea name="formula" id="formula" rows="5" cols="40"></textarea>
<p class="description"><span class="preview-formula"></span></p></dd>

<button name="previewtformula" id="previewformula" type="button" onclick="generatePreview(&#39;formula&#39;)">Preview</button>

対応する Zend フォーム コードは次のとおりです。

    $formula = $this->createElement('textarea', 'formula');
    $formula->setLabel('Formula:');
    $formula->setRequired(true);
    $formula->setAttrib('rows', 5);
    $formula->setAttrib('cols', 40);
    $formula->setDescription('<span class="preview-formula"></span>');
    $formula->getDecorator('Description')->setEscape(false);
    $this->addElement($formula);

    $prevFormula = $this->createElement('button', 'preview-formula');
    $prevFormula->setAttrib('onclick', "generatePreview('formula')");
    $prevFormula->setLabel('Preview');
    $prevFormula->removeDecorator('DtDdWrapper');
    $this->addElement($prevFormula);

JavaScript ファイル:

function generatePreview(elem){
    var details = $('textarea#'+elem).val();

    $.ajax({
        type: 'POST',
        url: '/formula/preview',
        async: false,
        data: 'details=' + details,
        success: function(responseText) {

            $("span.preview-"+elem).html(responseText);

        }
    });
};

そして私のコントローラーアクション:

public function previewAction() {

   if($this->_request->isXmlHttpRequest()) {
                $this->_helper->viewRenderer->setNoRender();
                $this->_helper->Layout->disableLayout();
                $data = $this->_request->getPost();
                $latex = new My_LatexRender();
                echo nl2br($latex->latex_content($data['details']));
        } else {
            return $this->_redirect('/index');
        }
}

私が言ったように、すべてが正常に機能していて、画像はディスクにうまく保存されており、データベースに追加された式はそのままです(「+」記号があります)が、式をプレビューすると、何らかの形ですべての「+」記号が取り除かれました。例

「2+2」は「2+2」としてデータベースに保存されますが、プレビューでは「22」です

剥奪された他のキャラクターがあるかどうかはわかりませんが、今のところ気づいていません

4

1 に答える 1

0

私は解決策を見つけました。私は変わらなければならなかった

data: 'details=' + details,

data: {details: details},
于 2012-08-24T00:32:31.347 に答える