简体   繁体   English

AJAX请求不起作用(POST)

[英]AJAX request does not work (POST)

I have a little problem with a POST request using AJAX. 我对使用AJAX的POST请求有一点问题。 The data just doesn't seem to get stored in the database. 数据似乎似乎没有存储在数据库中。 When I used GET instead of POST it worked, but the problem is that it sends a huge amount of data since it is imagedata from a canvas on the page. 当我使用GET而不是POST时,它可以工作,但是问题是它发送了大量的数据,因为它是页面上画布中的imagedata。 I tried to print out the size of the data that is sent to make sure it actually is correct before it is sent (it was about 10500 characthers long). 我尝试打印出发送的数据大小,以确保发送之前它实际上是正确的(大约10500个字符)。

Here's the Javascript/AJAX-code: 这是Javascript / AJAX代码:

if(type == "DrawingData" && Drawer)
{
    var CanvasData = canvas.toDataURL("image/png"); 
    var url = "DB_Com.php";
    var params = "DrawingData="+CanvasData;

    xmlhttp.open("POST", url, true);

    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.setRequestHeader("Content-length", params.length);
    xmlhttp.setRequestHeader("Connection", "close");

    xmlhttp.send(params);
}

And here is the PHP-code: 这是PHP代码:

if(isset($_POST['DrawingData']))
{
    $Image = mysql_real_escape_string($_POST['DrawingData']);

    $query = "UPDATE BlackboardDrawing SET Data = '$Image'";
    mysql_query($query) or die(mysql_error());
}

Any help is is highly appreciated. 我们非常感谢您的帮助。 Thanks! 谢谢!

Your Ajax looks fine, but you need to POST the row id that you are updating. 您的Ajax看起来不错,但是您需要发布要更新的行ID。 :

if(type == "DrawingData" && Drawer)
{
    var CanvasData = canvas.toDataURL("image/png"); 
    var url = "DB_Com.php";
    var rowid = 'your_row_id';
    var params = "DrawingData="+CanvasData+"rowid="+rowid;

    xmlhttp.open("POST", url, true);

    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.setRequestHeader("Content-length", params.length);
    xmlhttp.setRequestHeader("Connection", "close");

    xmlhttp.send(params);
}

And change your PHP script: 并更改您的PHP脚本:

if(isset($_POST['DrawingData']))
{
    $Image = mysql_real_escape_string($_POST['DrawingData']);
    $rowid = (int)$_POST['rowid'];
    $query = "UPDATE BlackboardDrawing SET Data = '$Image' WHERE id='$rowid'";
    mysql_query($query) or die(mysql_error());
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM