0

私はできる限り明確に説明しようとします。私がしたことは、ajaxを使用してページの一部をロードし、単純なjqueryを使用して、ajaxでロードされたdomのその部分にアクセスした後です。main.html で dom 部分をロードしました。dom 部分は、必要な html をエコーする php ファイルから来ています。main.html で call_me.php と呼ばれる php ファイルは js が既にロードされているとしましょう。基本的に、何らかの理由で ajax をロードした dom にアクセスできませんでした。私がそれを機能させるために行ったことは、その dom 部分で作業するために必要な js を call_me.php に配置することでした。js の一部は call_me.php によってエコーされず、何らかの理由で機能し、js コードを検索しました要素を検査してもまったく見つかりませんでした。何が起こっているのか教えてもらえますか? または、これがどのように機能するかを説明してください。私が使用したajaxコードは次のとおりです。

$('.general').click(function(){
    $('.contents').html("");
    $.ajax({
        type: 'GET',
        url: 'src/user_setting.php',
        data: 'target='+$('.user_target_id').val(),
        success: function(msg){
            $('.contents').html(msg);

        }
    });
});

ここにphpコードがあります

<?php 

    require '../config/global.php';
    if (isset($_GET['target']) && isset($_SESSION['userId'])) {
        $target = security($_GET['target']);
        $from = security($_SESSION['userId']);
    echo<<< html
    <input name = "target" type = "hidden" class = "target" value = "$target">
    <input name = "from" type = "hidden" class = "from" value = "$from">
    <div class ="container form-container2">
    <div class="alert alert-success confirm">
        <a class="close" data-dismiss="alert">&times;</a>
        Mesajul a fost trimis cu success !
    </div>
    <div class="alert alert-error confirm-error">
        <a class="close" data-dismiss="alert">&times;</a>
        Mesajul nu poate fi trimis !
    </div>

        <table>
            <tr>
                <td><span>Subiect</span></td> 
                <td><input name = "title" class = "span3 title" type = "text"  ></td>
            </tr>
            <tr>
                <td colspan="2"><textarea name = "body" class = "span5 msg" ></textarea></td>
            </tr>

            <tr>
                <td><button class = "btn btn-inverse send">Trimite mesaj</button></td>
            </tr>
        </table>

    </div>
html;
    }
 ?>
 <script type="text/javascript">
    $(".confirm").hide();
    $(".confirm-error").hide();
    $('.send').click(function(){

        $.ajax({
               type: "POST",
               url: "src/send_message.php",
               data: $(".target").serialize()+"&"+$(".from").serialize()+"&"+$(".title").serialize()+"&"+$(".msg").serialize(), 
               success: function(data)
               {
                 if (data == "ok") {
                    $(".confirm").slideDown();
                    $(".confirm-error").hide();
                    $(".title").val("");
                    $(".msg").val("");                  
                }else{
                    $(".confirm-error").slideDown();
                }
               }
         });
    });
 </script>

ajax がロードされた DOM で JavaScript を使用するより良い方法があれば教えてください。私は Web 開発の新人です。

4

0 に答える 0