57

編集: 解決策は、これを性別ページではなくプロフィール ページに追加することでした。

$('#profile').live( 'pageinit',function(event){
$('p#pTest').text(localStorage.getItem('gender'));

});

保存をクリックした後、別のページからプログラムで変更したいリストビューにいくつかのテキストを含む段落があります。

編集: これは profile.html のリストビューです。アイテムをクリックすると、性別を保存できる別のページが表示されます。このリストビューの段落を、他のページから変更された性別に変更したいです。

<ul data-role="listview"   >
    <li><a href="gender.html">
        <img src="images/gender2.jpg" />
        <h3>Gender</h3>
        <p id="pTest">Male</p>
    </a></li> </ul>

性別 HTML ページは、2 つのラジオ ボタンと保存ボタンを備えた基本的なものです。これが私のjavascriptコードです(別のファイルにあります):

$('#gender').live('pageinit', function(event) {

    var gender = localStorage.getItem('gender');
    var boolMale = true;
    if (gender == "female") boolMale = false;
    $('#radio-choice-male').attr("checked",boolMale).checkboxradio("refresh");
    $('#radio-choice-female').attr("checked",!boolMale).checkboxradio("refresh");

    $('#saveGenderButton').click(function() {
        if ($('#radio-choice-male').is(':checked'))
            localStorage.setItem('gender', "male");
        else localStorage.setItem('gender', "female");

        $('#pTest').html('test'); //does not work
         //$('p#pTest').text('test'); //does not work
         //$('#pTest').text('test'); //does not work
        $.mobile.changePage("profile.html");
    });
});

私はjavascriptでこれを試しました:$('p#pTest').text('test');

ただし、テキストは変更されません。(保存ボタンが機能することは知っています)。これは可能ですか?

4

3 に答える 3

102

次のことを試してください。ユーザーがページを更新すると、値が再び「Male」になり、データがデータベースに保存されることに注意してください。

$('button').click(function(){
     $('#pTest').text('test')
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js"></script>

<p id="pTest">Male</p>
<button>change</button>

于 2012-05-07T17:02:42.460 に答える
0

「保存」は、jquery で段落の内容を変更することとはまったく別のものです。

変更を保存する必要がある場合は、何らかの方法でそれらをサーバーに書き込む必要があります (フォームの送信とそれに伴うすべてのセキュリティおよび入力のサニタイズが必要になる可能性があります)。サーバーに保存されている情報がある場合は、段落の内容を変更していないため、動的なコンテンツを含む段落を描画しています (データベースまたは「保存」を行ったときにサーバーが変更したファイルから)。 .

あなたの質問から判断すると、これはさらに多くの調査を行う必要があるトピックです。

入力ページ (input.html):

<form action="/saveMyParagraph.php">
    <input name="pContent" type="text"></input>
</form>

保存ページ (saveMyParagraph.php) と出力ページ (output.php):

PHP を使用して MySQL データベースにデータを挿入する

于 2012-05-07T17:20:44.693 に答える
0

カスタムイベント名「pageinit」にクリックイベントがラップされているようですが、ボタンをクリックする前にイベントがトリガーされていますか?

このようなもの:

$("#gender").trigger("pageinit");
于 2012-05-07T17:26:03.120 に答える