سؤال

أنا تغيير الحصول على وظيفة.حاليا لدي .jsp?id=a,b,c,d.عند تغيير هذا المنصب وأنا ما زلت جالسا هوية المعلمة a,b,c,d .هذا لا يعمل بالنسبة لي.هل يمكنني تقديم قائمة مفصولة بفواصل إلى وظيفة المعلمة ؟

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

المحلول

هل أنا على خطأ أو معظم الإجابات هي بجانب النقطة؟

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

وحتى إذا كنت أشرح أكثر في تفاصيل ما "لا يعمل"، وربما يمكننا مساعدتك أكثر من ذلك.

نصائح أخرى

ويمكنك أن تفعل ذلك وكأنه شكل مدخلات حدد:

ورابط؟ المعلمة = VALUE1 والمعلمة = و value2 والمعلمة = value3

واعتمادا عليك اللغة والمكتبة التي ينبغي أن تكون قادرة على الحصول على مجموعة من القيم المعلمة.


وعلى سبيل المثال مع مفك asp.net أفعل هذا للحصول على مجموعة من السلاسل:

string[] values = Request.Form.GetValues("param");

وFionn هو الصحيح. استخدام

url?param=value1&param=value2&param=value3

ولتعيين قيم متعددة لمعلمة واحدة. لقراءة القيم في بريمج الخاص بك / JSP يمكنك استخدام

String[] values = request.getParameterValues("param");

وتعيين أن يكون لديك المعلمة تقديم قيم متعددة من خلال تسمية أنها صفيف. بدلا من استدعاء إدخال "المعرف"، الذي يطلق عليه "معرف []"

<form method="post">
<select multiple name="id[]">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input type="submit" value="send">
</form>

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

يمكنك تمرير أكثر من معلمة واحدة باستخدام

        xmlhttp
                .send("files=" + files.value + "&tagcount="
                        + tagcount.value);

هنا الملفات و tagcount هي هوية parmeters لتمريرها.وكان هذا العمل بالنسبة لي اياكس النصي.في الحالات العادية يمكنك فقط إضافة المعلمات من قبل &.حتى المعلمات يمكن أن تبدو وكأنها

"parameter1=" + parameter1.value + "&parameter2=" + parameter2.value

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

وظيفة makePOSTRequest (رابط، المعلمات) {

  http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
     http_request = new XMLHttpRequest();
     if (http_request.overrideMimeType) {
        // set type accordingly to anticipated content type
        //http_request.overrideMimeType('text/xml');
        http_request.overrideMimeType('text/html');
     }
  } else if (window.ActiveXObject) { // IE
     try {
        http_request = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
        try {
           http_request = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {}
     }
  }
  if (!http_request) {
     alert('Cannot create XMLHTTP instance');
     return false;
  }

  http_request.onreadystatechange = alertContents;
  http_request.open('POST', url, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http_request.setRequestHeader("Content-length", parameters.length);
  http_request.setRequestHeader("Connection", "close");
  http_request.send(parameters);

و}

والحصول على وظيفة لديها غرضين مختلفين. من ويكيبيديا دخول HTTP:

<اقتباس فقرة>   

وGET

     

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

     

وظيفة

     

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

والأساس، يجب عليك استخدام الحصول على ل، حسنا، الحصول على المعلومات، وظيفة لأية إجراءات التي تغير حالة الخادم، مثل إضافة سجلات جديدة.

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