إرجاع البيانات لا يعمل في مسج باستخدام اياكس

StackOverflow https://stackoverflow.com/questions/402503

  •  03-07-2019
  •  | 
  •  

سؤال

ولقد وضعت الرمز مع اياكس ومسج. لقد حصلت على رد من my.php، ولدي حاول استخراج القيم من الاستجابة. هنا الرمز (HTML):

My.php

?php
    echo '<div id="title">My Title </div>';
    echo '<div id="message"> My message </div>';
?>

وأنا أحاول أن استخراج العنوان والرسالة حتى قانون بلدي أدناه.

    <head>
        <script type="text/javascript" src="js/jquery-1.2.6.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                alert("OK");

                $.ajax({
                    type:"POST",
                    url: "my.php",
                    cache:false ,
                    success: function(data){
                        $("#response").html(data);
                        var $response = $(data);
                        var oneval = $response.find('#title').text();
                        var subval = $response.find('#message').text();
                        alert(oneval);
                    }
                });
            });
        </script>
    </head>

    <body>
        <div id="response">
        </div>
    </body>
</html>

...

والمشكلة هي عندما حاولت تنبيه، فإنه لا يعمل. ما هو الخطأ في هذا المنطق؟ هل يجب استخدام وظيفة أخرى لاستخراج العنوان والرسالة؟

هل كانت مفيدة؟

المحلول

وOK، انتقل إلى http://jsbin.com/udige/ و يمكنك أن ترى العمل .

ومفتاح يستخدم .filter، وليس .find باعتبارها عناصر div هما العناصر الجذر في الاستجابة. خطأي.

وأساسا القيام بما يلي:

success: function(data){
    $("#response").html(data);
    var $response = $(data);
    var oneval = $response.filter('#title').text();
    var subval = $response.filter('#message').text();
    alert(oneval);
}

نصائح أخرى

إذا الاستجابة يعود كما كتب عليه ثم رمز التي أعطيتك ستعمل.

وكنت حقا بحاجة لتعلم كيفية استخدام مصحح ( الحرائق ) ووضع نقاط التوقف في التعليمات البرمجية بحيث يمكنك استخدام وحدة لاختبار محددات وإلقاء نظرة على قيم المتغيرات، الخ كما يجب عليك أن استجابت فعلا إلى السؤال الأصلي والجواب الذي أعطى بدلا من فتح سؤال جديد كليا وخصوصا أنك لم حتى عبر الإشارة الخاصة بك الأصلي.

وحاول استخدام هذا بدلا من ذلك:

var oneval = $("#response #title").text();
var subval = $("#response #message").text();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top