За последние 24 часа нас посетили 20309 программистов и 1716 роботов. Сейчас ищут 1277 программистов ...

обработка xmlHttpRequest объекта в цикле Javascript

Тема в разделе "PHP и базы данных", создана пользователем GennadyiK, 10 фев 2008.

  1. GennadyiK

    GennadyiK Активный пользователь

    С нами с:
    27 окт 2007
    Сообщения:
    5
    Симпатии:
    0
    Здравствуйте.
    Помогите решить проблему.

    Формирую HTML страницу php скриптом.
    Но форме выводиться таблица, ячейки в последнем столбце формируется в виде <select> тега,
    причем данные заполняются из базы отдельным php файлом
    (на самом деле это не важно, просто обрисовываю ситуацию вцелом).
    Пользователь может произвольно устанавливать значения ячеек последнего столбца.
    На форме имеется кнопка, по событию onclick, попадаю в JavaScript, где обрабатываю
    значение в ячейках. Использую для этого, два цикла, внешний по строкам, внутренний по столбцам,
    запоминаю нужные мне значения ячеек в переменных.
    Затем использую AJAX, в котором создаю xmlHttpRequest объект.
    Из его свойство open, вызываю php скрипт с параметрами из ячеек таблицы.
    Php скрипт записывает переданные ему информацию в базу.
    Затем перехожу к следующей строке и т.д.
    Для отладки, включил после внутреннего цикла alert ("значение ячеек").
    Если применяю alert(), то все данные корректно, записываются в базу.
    Если alert() выключена, то в базу записывается только последняя строка из обрабатываемой таблтцы.
    Естественно, нужно, чтобы все работало без включения alert().

    Вопрос, почему так происходит?
    Как можно, обойти эту проблему? :?:

    Пожалуйста помогите.
    Потратил очень много времени, не нашел решения. :?

    Буду благодарен за любую информацию
    Заранее всем спасибо. :!:
     
  2. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    код в студию. Скорее всего - ошибка в синтаксисе.
     
  3. GennadyiK

    GennadyiK Активный пользователь

    С нами с:
    27 окт 2007
    Сообщения:
    5
    Симпатии:
    0
    Вы правы !!!!

    Было так:

    Код (Text):
    1.  
    2.       echo "<script language='JavaScript' type='text/javascript'> ";
    3.       echo "var xmlHttp1; ";
    4.       echo "function Check_input(str)";
    5.       echo "{";
    6.       echo "    xmlHttp1=GetxmlHttpObject();";
    7.       echo "    if (xmlHttp1==null)";
    8.       echo "    {";
    9.       echo "        alert (\"Browser does not support HTTP Request\");";
    10.       echo "        return;";
    11.       echo "    }";
    12.       echo " var table = document.getElementById(\"idS\");
    13.       var trList= table.getElementsByTagName('tr');
    14.       for (var i=1;i<trList.length;i++)
    15.       {
    16.           var tdList = trList[i].getElementsByTagName('td');
    17.           var tmpS='';
    18.           var tmpS1='';
    19.           var tmpS2='';
    20.           var tmpS3='';
    21.           var or_id='';
    22.           var oi_id='';
    23.           var op_id='';
    24.           var jj='';
    25.           var kk='';
    26.           for (j=0;j<tdList.length;j++)
    27.           {
    28.              if (j==0)
    29.              {
    30.                  tmpS=tdList[j].innerHTML;  
    31.                  ii=tmpS.indexOf('?');
    32.                  tmpS1=tmpS.substr(ii+1,15);
    33.                  jj=tmpS1.indexOf('=');
    34.                  kk=tmpS1.indexOf('\"');
    35.                  tmpS2=tmpS1.substr(jj+1,kk-(jj+1));
    36.                  or_id=tmpS2;  
    37.              }
    38.              if (j==3)
    39.              {
    40.                  tmpS=tdList[j].innerHTML;  
    41.                  ii=tmpS.indexOf('?');
    42.                  tmpS1=tmpS.substr(ii+1,15);
    43.                  jj=tmpS1.indexOf('=');
    44.                  kk=tmpS1.indexOf('\"');
    45.                  tmpS2=tmpS1.substr(jj+1,kk-(jj+1));
    46.                  oi_id=tmpS2;  
    47.              }
    48.              if (j==11)
    49.              {
    50.                  tmpS=tdList[j].innerHTML;
    51.                  ii=tmpS.indexOf('selected');
    52.                  tmpS1=tmpS.substr(ii-10,10);
    53.                  jj=tmpS1.indexOf('=');
    54.                  tmpS2=tmpS1.substr(jj+1,20);
    55.                  tmpS3=tmpS2.trim();
    56.                  op_id=tmpS3;
    57.              }
    58.           }
    59.           var url=\"sched_ins.php\";
    60.           url=url+\"?por_id=\"+or_id;
    61.           url=url+\"&poi_id=\"+oi_id;
    62.           url=url+\"&pop_id=\"+op_id;
    63.           url=url+\"&sid=\"+Math.random();
    64.           xmlHttp1.onreadystatechange=stateChanged;
    65.           xmlHttp1.open(\"GET\",url,true);
    66.           xmlHttp1.send(null);
    67.       }";
    68.       echo "}";
    69.        
    70.       echo "function stateChanged()";
    71.       echo "{";
    72.       echo "    if (xmlHttp1.readyState==4 )";
    73.       echo "    {";
    74.       echo "        document.getElementById(\"txtHint\").innerHTML=xmlHttp1.responseText;";
    75.       echo "    }";
    76.       echo "}";
    77.      
    78.       echo "function GetxmlHttpObject()";
    79.       echo "{";
    80.       echo "    var xmlHttp1=null;";
    81.       echo "    try";
    82.       echo "    {";
    83.       echo "        xmlHttp1=new xmlHttpRequest();";
    84.       echo "    }";
    85.       echo "    catch (e)";
    86.       echo "    {";
    87.       echo "        try";
    88.       echo "        {";
    89.       echo "            xmlHttp1=new ActiveXObject(\"Msxml2.xmlHttp\");";
    90.       echo "        }";
    91.       echo "        catch (e)";
    92.       echo "        {";
    93.       echo "            xmlHttp1=new ActiveXObject(\"Microsoft.xmlHttp\");";
    94.       echo "        }";
    95.       echo "    }";
    96.       echo "    return xmlHttp1;";
    97.       echo "}";
    98.  
    99.       echo "String.prototype.trim = function()";
    100.       echo "{";
    101.       echo "   return this.replace(/(^\s+|\s+$)/g, \"\");";
    102.       echo "}";
    103.       echo "</script>";

    А надо было так:

    Код (Text):
    1.  
    2.       echo "<script language='JavaScript' type='text/javascript'> ";
    3.       echo "var xmlHttp1; ";
    4.       echo "function Check_input(str)";
    5.       echo "{";
    6.       echo " var table = document.getElementById(\"idS\");
    7.       var trList= table.getElementsByTagName('tr');
    8.       for (var i=1;i<trList.length;i++)
    9.       {
    10.           var tdList = trList[i].getElementsByTagName('td');
    11.           var tmpS='';
    12.           var tmpS1='';
    13.           var tmpS2='';
    14.           var tmpS3='';
    15.           var or_id='';
    16.           var oi_id='';
    17.           var op_id='';
    18.           var jj='';
    19.           var kk='';
    20.           for (j=0;j<tdList.length;j++)
    21.           {
    22.              if (j==0)
    23.              {
    24.                  tmpS=tdList[j].innerHTML;
    25.                  ii=tmpS.indexOf('?');
    26.                  tmpS1=tmpS.substr(ii+1,15);
    27.                  jj=tmpS1.indexOf('=');
    28.                  kk=tmpS1.indexOf('\"');
    29.                  tmpS2=tmpS1.substr(jj+1,kk-(jj+1));
    30.                  or_id=tmpS2;
    31.              }
    32.              if (j==3)
    33.              {
    34.                  tmpS=tdList[j].innerHTML;
    35.                  ii=tmpS.indexOf('?');
    36.                  tmpS1=tmpS.substr(ii+1,15);
    37.                  jj=tmpS1.indexOf('=');
    38.                  kk=tmpS1.indexOf('\"');
    39.                  tmpS2=tmpS1.substr(jj+1,kk-(jj+1));
    40.                  oi_id=tmpS2;
    41.              }
    42.              if (j==11)
    43.              {
    44.                  tmpS=tdList[j].innerHTML;
    45.                  ii=tmpS.indexOf('selected');
    46.                  tmpS1=tmpS.substr(ii-10,10);
    47.                  jj=tmpS1.indexOf('=');
    48.                  tmpS2=tmpS1.substr(jj+1,20);
    49.                  tmpS3=tmpS2.trim();
    50.                  op_id=tmpS3;
    51.              }
    52.           }
    53.           xmlHttp1=GetxmlHttpObject();
    54.           if (xmlHttp1==null)
    55.           {
    56.               alert (\"Browser does not support HTTP Request\");
    57.               return;
    58.           }
    59.           var url=\"sched_ins.php\";
    60.           url=url+\"?por_id=\"+or_id;
    61.           url=url+\"&poi_id=\"+oi_id;
    62.           url=url+\"&pop_id=\"+op_id;
    63.           url=url+\"&sid=\"+Math.random();
    64.           xmlHttp1.onreadystatechange=stateChanged;
    65.           xmlHttp1.open(\"GET\",url,true);
    66.           xmlHttp1.send(null);
    67.       }";
    68.       echo "}";
    69.  
    70.       echo "function stateChanged()";
    71.       echo "{";
    72.       echo "    if (xmlHttp1.readyState==4 )";
    73.       echo "    {";
    74.       echo "        document.getElementById(\"txtHint\").innerHTML=xmlHttp1.responseText;";
    75.       echo "    }";
    76.       echo "}";
    77.  
    78.       echo "function GetxmlHttpObject()";
    79.       echo "{";
    80.       echo "    var xmlHttp1=null;";
    81.       echo "    try";
    82.       echo "    {";
    83.       echo "        xmlHttp1=new xmlHttpRequest();";
    84.       echo "    }";
    85.       echo "    catch (e)";
    86.       echo "    {";
    87.       echo "        try";
    88.       echo "        {";
    89.       echo "            xmlHttp1=new ActiveXObject(\"Msxml2.xmlHttp\");";
    90.       echo "        }";
    91.       echo "        catch (e)";
    92.       echo "        {";
    93.       echo "            xmlHttp1=new ActiveXObject(\"Microsoft.xmlHttp\");";
    94.       echo "        }";
    95.       echo "    }";
    96.       echo "    return xmlHttp1;";
    97.       echo "}";
    98.  
    99.       echo "String.prototype.trim = function()";
    100.       echo "{";
    101.       echo "   return this.replace(/(^\s+|\s+$)/g, \"\");";
    102.       echo "}";
    103.  
    104.       echo "</script>";

    Всем спасибо за внимание!
    Проблема решена!