0

次のJavaScriptを使用してデータをデータベースに送信します

var x=document.getElementById("sortable").innerHTML;
    alert(x);
    var http=new XMLHttpRequest();
        http.open("POST", "5.php?field="+x, true);
        http.onreadystatechange = function() 
        {
            if(http.readyState == 4 && http.status == 200) 
            {
                alert(http.responseText);

            }
        }

        http.send();

次の関数を使用するphp側のim:

$l=$_GET['field'];
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("formdem", $con);
$sql="INSERT INTO rohit(content)VALUES('$l')";
if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "<br/>&nbsp&nbsp&nbsp Your Form is now ready to be filled.....";
$rs= mysql_query("Select * from rohit where content='$l'");
if(mysql_num_rows($rs)!=0)
    {
    while($row = mysql_fetch_array($rs)) {

      echo "<br/>Your unique id is ".$row['formid'];


      }
      }

しかし、このコードは完全なデータをデータベースに送信していません。何が理由かもしれません。データベースでは、フィールドをロングテキストとして取得しました。thnx

4

1 に答える 1

1

innerHTML は HTML であるため、単純に追加して URL を作成することはできません。あなたはこれを行うことはできません:

http.open("POST", "5.php?field="+x, true);

前に x を urlEncode する必要があります。

http.open("POST", "5.php?field="+encodeURIComponent(x), true);
于 2012-07-19T12:58:29.537 に答える