0

私はphpスクリプトを持っていて、それでajaxを使用しています。ajaxクラスに接続するテキストエリアフォームがあります

( ) 関数が空のテキストを返すようなテキストを渡すときの&some text問題は、 ( ) に問題があると思います&

JavaScript 関数:

function sendFormData(idForm, dataSource, divID, ifLoading)
{
  var postData='';
  var strReplaceTemp;

  if(XMLHttpRequestObject)
  {
    XMLHttpRequestObject.open("POST", dataSource);
    XMLHttpRequestObject.setRequestHeader("Method", "POST " + dataSource + " HTTP/1.1");
      XMLHttpRequestObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    XMLHttpRequestObject.onreadystatechange = function()
    {
      if (XMLHttpRequestObject.readyState == 4 &&
          XMLHttpRequestObject.status == 200)
      {
        try
        {
          var objDiv = document.getElementById(divID);
          objDiv.innerHTML = XMLHttpRequestObject.responseText;
        }
        catch(e){document.write("sendFormData: getElementById(divID) Error");}
      }
      else
      {
        if(ifLoading)
        {
          try
          {
            var objDiv = document.getElementById(divID);
            objDiv.innerHTML = "<img src=loading.gif>";
          }
          catch(e){document.write("sendFormData->ifLoading: getElementById(divID) Error");}
        }
      }
    }

    for(i=0; i<document.getElementById(idForm).elements.length - 1; i++)
    {
      strReplaceTemp = document.getElementById(idForm).elements[i].name;
      postData += "&aryFormData["+strReplaceTemp+"][]="+document.getElementById(idForm).elements[i].value;
    }

    postData += "&parm="+new Date().getTime();
    try
    {
      XMLHttpRequestObject.send(postData);
    }
    catch(e){document.write("sendFormData: XMLHttpRequestObject.send Error");}
  }
}
4

3 に答える 3

1

& が & でエンコードされていることを確認してください。Javascriptを使用して渡す場合。すべて & をエンコードする必要があります。そうしないと、一部のブラウザーが少しおかしくなり、バリデーターが文句を言います。

于 2008-11-04T19:45:50.517 に答える
0

HTML と & と問題が表示されると、文字エンコーディングがすべて適切に指定されていることを確認します。

また、PHP スクリプトのコードが、エスケープされていない「&」文字で窒息している可能性があります。

于 2008-11-04T19:41:03.427 に答える
0

関数で、document.getElementById(idForm).elements[i].value と strReplaceTemp (postData += 内) の行を "encodeURI()" でラップすると、データが適切に処理されるという問題は発生しません。受け取った。

于 2008-11-04T19:57:27.967 に答える