سؤال

والشعور بالفخر من نفسي بعد إنشاء نموذج مع أجاكس تقديم، واختباره في IE8 والحصول على "رسالة:" كمية "غير محددة". لقد قرأت أنه يمكن أن يكون أن تفعل شيئا مع حقيقة أن الإصدارات السابقة من IE تستخدم اكتف لطلبات AJAX، ولكن أنا جديد جدا إلى JS وليس لديهم فهم حقيقي للمشكلة، ناهيك عن القدرة على تنفيذ الإصلاح .

إليك قانون بلدي:

var time_variable;

function getXMLObject()  //XML OBJECT
{
  var xmlHttp = false;
   try {
     xmlHttp = new ActiveXObject("Msxml2.XMLHTTP")  // For Old Microsoft Browsers
   }
   catch (e) {
     try {
       xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")  // For Microsoft IE 6.0+
     }
     catch (e2) {
       xmlHttp = false   // No Browser accepts the XMLHTTP Object then false
     }
   }
   if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
     xmlHttp = new XMLHttpRequest();        //For Mozilla, Opera Browsers
   }
   return xmlHttp;  // Mandatory Statement returning the ajax object created
}

var xmlhttp = new getXMLObject();   //xmlhttp holds the ajax object

function ajaxFunction() {
  var getdate = new Date();  //Used to prevent caching during ajax call
  if(xmlhttp) { 
    var txtname = document.getElementById("txtname");
    xmlhttp.open("POST","slots.php",true); //calling     testing.php using POST method
    xmlhttp.onreadystatechange  = handleServerResponse;
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp.send("quantity=" + quantity.value + "&price=" + price.value + "&slot=" +         slot.value + "&store=" + store.value); //Posting txtname to PHP File


  }
}

function handleServerResponse() {
   if (xmlhttp.readyState == 4) {
     if(xmlhttp.status == 200) {
       document.getElementById("message").innerHTML=xmlhttp.responseText; //Update the     HTML Form element 
     }
     else {
        alert("Error during AJAX call. Please try again");
     }
   }
}
هل كانت مفيدة؟

المحلول

ومن التعليق الاخيرة على سؤالك، وأظن أنك لا تقوم بتعريف 'كمية' في أي مكان وعلى افتراض أنه سيكون مرجع حقل النموذج. جرب هذا:

if(xmlhttp) { 
    var txtname = document.getElementById("txtname");
    var quantity = document.getElementById("quantity");
    var price = document.getElementById("price");
    var store = document.getElementById("store");
    xmlhttp.open("POST","slots.php",true); //calling     testing.php using POST method
    xmlhttp.onreadystatechange  = handleServerResponse;
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp.send("quantity=" + quantity.value + "&price=" + price.value + "&slot=" +               slot.value + "&store=" + store.value); //Posting txtname to PHP File
}

نصائح أخرى

إذا الكمية حقل نموذج تحتاج إلى الحصول عليها باستخدام getElementById قبل استخدامه مثلما فعلت مع txtname:


var quantity = document.getElementById("quantity");

وأنت غير قادر على استخدامها مباشرة من النموذج.

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