معالجة البيانات في HTML دون رمز الخادم (فقط باستخدام جافا سكريبت)

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

سؤال

وكنت أتساءل فقط ما إذا كان هناك طريقة للقيام بذلك:

ولدي نموذج في صفحة ويب، بعد يقوم المستخدم بإرسال النموذج، الصفحة يتم إعادة توجيه إلى صفحة HTML ثابتة أخرى.

هل هناك أي طريقة لمعالجة البيانات في صفحة HTML الثانية دون مساعدة من أي رمز الخادم؟

وأعني يمكنني عرض بيانات النموذج أن المستخدم تقدم في الصفحة الثانية؟

وبالطبع يجب أن يكون هناك الملاحة، وليس بعض التعليمات البرمجية اياكس تحميل الصفحة الثانية (باستخدام والتي سيكون من السهل لمعالجة البيانات).

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

المحلول

ويمكنك استخدام <form> مع طريقة GET للذهاب إلى صفحة HTML ثابتة أخرى مع بعض معلمات الاستعلام ومن ثم الاستيلاء على تلك المعايير مع جافا سكريبت:

والصفحة الأولى:

<form method="GET" action="page2.html">
    <input type="text" name="value1"/>
    <input type="text" name="value2"/>
    <input type="submit"/>
</form>

والصفحة الثانية:

<script type="text/javascript">
function getParams() {
    function decode(s) {
        return decodeURIComponent(s).split(/\+/).join(" ");
    }

    var params = {};

    document.location.search.replace(
        /\??(?:([^=]+)=([^&]*)&?)/g,
        function () {
            params[decode(arguments[1])] = decode(arguments[2]);
        });

    return params;
}

var params = getParams();

alert("value1=" + params.value1);
alert("value2=" + params.value2);
// or massage the DOM with these values
</script>

نصائح أخرى

ويمكنك الوصول إلى صفحات GET المعلمات من جافا سكريبت (<م> window.location.search ، والتي لا تزال تحتاج إلى تحليل)، واستخدام هذا لتمرير بعض veriables إلى صفحة ثابتة.

و(أفترض لا توجد وسيلة للوصول الى نشر محتوى).

ويمكنك أيضا قراءة وتعيين قيم الكوكيز من جافا سكريبت.

إذا كنت ضمن مجموعة إطارات حيث "الأم" صفحة العصي دائما حولك من المحتمل أيضا تخزين المعلومات في هناك (أيضا عبر الإطار البرمجة هو صعب وأود في محاولة لتجنب ذلك).

إذا كان لديك الصفحة الأولى تقديم الاستمارة مع العمل GET ستحصل على URL التي تبدو مثل:

http://tempuri.org/Page2.html?param1=value1&param2=value2

ويمكنك بعد ذلك استخدام جافا سكريبت على Page2.html أن يقرأ معلمات سلسلة الاستعلام ويعرضها على الصفحة.

إذا كنت ترسل النموذج الذي يحصل من خلال، نعم، يمكنك انتزاع تلك المعلومات من شبيبة.

وهناك المساعد مسج أن يفعل ذلك، ولكن إذا كنت تريد، يمكنك لفة بنفسك، وليس معقدة جدا.

ومجرد الحصول على location.href ويقسم باستخدام "؟"

وبعد ذلك، وتقسيم مرة أخرى باستخدام "&"

والآن، لكل قيمة، وتقسيم مع "=". ثم سيكون لديك مجموعة مع اسم الاستعلام، وقيمة ذلك.

وتحرير: جوجل لjavascript get querystring للعثور على عشرات من التطبيقات

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top