0

クリックを使用して AJAX POST リクエストを編集するプラグインがあり、スクリプトはすべて作成されていますが、テストに行ったときに、変更しようとしていたデータベースの値が変更されなかったため、URL を変更しましたリクエストを Google コンソールに報告する関数に設定すると、次のように返されます。

Object {name: "", value: "derp@derpp.com", pk: 23} 

これが私がAJAXにしようとしているPHPスクリプトです。

<? $query = " 
    UPDATE users SET email = '".$_POST['value']."' WHERE id = '".$_POST['pk']."'
";      
try 
{
    $stmt = $db->prepare($query); 
    $stmt->execute(); 
} 
catch(PDOException $ex) 
{  
    die("Failed to run query: " . $ex->getMessage()); 
} 
$rows = $stmt->fetchAll();
?>

私の全体的な問題は、コンテンツが AJAX によって変更されていないことです。スクリプトを手動でテストしたところ、すべてが機能しました。

編集

私は手動でAJAXリクエストを行っていません.X-Editableと呼ばれるプラグインから使用されています ドキュメントはここにあります

4

3 に答える 3

1

送信しているデータが実際にPOSTリクエスト内にあることを確認しましたか?$ .ajax({type:'POST'、url:url、data:data、success:success、dataType:dataType});などの適切なjquerypostリクエストを使用しているかどうかを確認し ます。

投稿データを送信するだけでは役に立ちません。さらに、javascript.getTime関数などのダミー値を渡していない場合は、xmlhttpオブジェクトが新しいクエリとして認識しないときにそれを使用することをお勧めします。したがって、URLは「url:'dummy ='+ dt.getTime()+'&var1 ='+ $ textbox1.val()」である必要があります。これがお役に立てば幸いです。

于 2012-12-11T08:17:51.733 に答える
0

php で $_POST 関数を使用する場合、post データ型は application/x-www-urlencoded でなければなりません。

HTTP  /yourURI  HTTP/1.0
Content-Length:xxx
Content-Type:application/x-www-urlencoded
Connection:clsoe

name=&value=derp%40derpp.com&pk=23

本文としてオブジェクトをサーバーに投稿できません...

HTTP  /yourURI  HTTP/1.0
Content-Length:xxx
Content-Type:application/json
Connection:clsoe

{name: "", value: "derp@derpp.com", pk: 23}
于 2012-12-11T08:20:12.597 に答える
-2

改訂されたクエリ...整数ベースの値がある場合は、引用できません。

$query = "UPDATE users SET email = '".$_POST['value']."' WHERE id = ".$_POST['pk'];

または文字列置換を使用する

$query = "UPDATE users SET email = '{$_POST['value']}' WHERE id = {$_POST['pk']}";
于 2012-12-11T08:34:24.293 に答える