1

現在、wmd エディターと jQuery-UI タブを使用しています。(次のボタンがクリックされたときに)wmd-preview値を送信し、php が結果をタブ 2 にエコーする ajax/js 関数を作成しました。問題は、結果が表示されないことです。私は値を探しているのではtextareaなく、div#wmd-preview値を探しています。wmd-previewajax/関数を介してdivの値を表示するにはどうすればよいですか?

JS

<script>
$(function () {
    var $tabs = $('#tabs').tabs({
        disabled: [0, 1],
        select: function () {
            $.ajax({
                type: "POST",
                url: "post_tabs.php",
                data: {
                    "wmd": $("#wmd-preview").val(),
                },
                success: function (result) {
                    $("#tab-2").html(result);
                }
            });
        }
    });

    $(".ui-tabs-panel").each(function (i) {
        var totalSize = $(".ui-tabs-panel").size() - 1;
        if (i != totalSize) {
            next = i + 2;
            $(this).append("<a href='#' class='next-tab mover' rel='" + next + "'>Next Page &#187;</a>");
        }
        if (i != 0) {
            prev = i;
            $(this).append("<a href='#' class='prev-tab mover' rel='" + prev + "'>&#171; Prev Page</a>");
        }
    });

    $('.next-tab').click(function () {
        var currentTab = $('#tabs').tabs('option', 'selected');
        if (
        (
        currentTab == 0 && /*(B)*/
        $.trim($('#wmd-input').val()).length > 0
        )
        ) {
            var tabIndex = $(this).attr("rel");
            $tabs.tabs('enable', tabIndex).tabs('select', tabIndex).tabs("option", "disabled", [0, 1]);
        } else {
            switch (currentTab) {
            case 0:
                alert('Please fill out all the required fields.', 'Alert Dialog');
                break;
            }
        }
        console.log("preventing default");
        return false;
    });

    $('.prev-tab').click(function () {
        var tabIndex = $(this).attr("rel");
        $tabs.tabs('enable', tabIndex).tabs('select', tabIndex).tabs("option", "disabled", [0, 1]);
        return false;
    });

});
</script>

PHP

<?
if (isset($_POST['wmd'])){
    $wmd = $_POST['wmd']; 
    echo ('<div id="text_result"><span class="resultval"><h2>Textarea Echo result:</h2>'.$wmd.'</span></div>');
                       }
?>

HTML

<div id="tab-1" class="ui-tabs-panel ui-tabs-hide">
    <div id="wmd-button-bar"></div>
    <textarea id="wmd-input" name="wmd-input" cols="92" rows="15" tabindex="6"></textarea>
    <div id="wmd-preview"></div>
</div>

<div id="tab-2" class="ui-tabs-panel ui-tabs-hide">

</div>
4

1 に答える 1

3

PHPコードはで始まる必要がありますが<?php、あなたのコード<?は正しくありません。

PHPコードがテキストとして表示される場合、実行されていないことが示されるはずです。これが'.$wmd.''); } ?>、実際のP​​HPエコー出力の代わりに出力を取得し続ける理由です。

他のコメントも同様に有効です-使用する$("#wmd-preview").html()か、divで$("#wmd-input").val()使用することはできませんがval、機能しません。

このシナリオでは、これがフィールドが存在する$("#wmd-input").val()理由であるという理由だけで、より良い選択です-入力を取得するため。input

他にご不明な点がありましたらお知らせください。

于 2012-08-11T07:39:30.327 に答える