2017-01-20 15 views
2

私はシークレットダイアリーのログインとサインアップシステムを開発するこの練習プロジェクトに参加しています。それ以外のものはすべてうまくいくはずですが、私はこの部分に固執しています。実際に秘密の日記ではテキストエリアがあり、テキストエリアで変更が発生するたびに、AJAXはそのデータをPHPファイルに渡し、phpはデータベースを更新するようにしています。AJAXがPHPにデータを送信できません

$("textarea").on("input propertychange", function() { 
    $.ajax({ 
    method: "POST", 
    url: "updatediary.php", 
    data: { 
     content: $("textarea").val() 
    } 
    }); 
}); 
<?php 
    session_start(); 

    $link = mysqli_connect("localhost", "cl44-secretdr", "********", "cl44-secretdr"); 

    if (mysqli_connect_error()) 
    { 
    die ("Database Connection Error"); 
    } 

    if (isset($_POST['content'])) 
    { 
    $query = "UPDATE `users` SET `diary` = '".$_POST['content']."' WHERE id = '".$_SESSION['id']."'"; 
    $result = mysqli_query($link, $query); 
    } 
?> 

私をしてください助けて!

+1

あなたは 'content'を送信し、まだPHPで' content1'を探しています。それはちょうどタイプミスのように閉じる –

+0

私はそれを修正しましたが、まだ助けになりません。データベースは、テキストエリアの変更に気付かないままです! –

+0

'id = $ _SESSION ['id']'のレコードがDBに存在しますか?実行していて、実際にデータを変更していない可能性があります。要求が失敗した時点を正確にデバッグしましたか? –

答えて

1

を試してみてください? 1.9バージョンの前に、ajaxリクエストの "method"属性は "type"と呼ばれます。たぶんあなたはその属性を変更する場合、それは動作します。

+0

jquery-3.1.1.slim.min.js –

+0

'var_dump($ _ POST)'を実行すると空の配列が得られますか? – burgund

+0

はい空の配列を取得する –

0

は、使用しているのjQueryのバージョンは何本

$("textarea").on("input propertychange", function() { 

var obj={'val':$("textarea").val()}; 
$.ajax({ 
     type: 'post', 
     url: 'updatediary.php', 
     data:obj, 
     success: function (data) { 
      location.reload(); 
     } 
    }); 
}); 

    <?php 
     session_start(); 

     $link = mysqli_connect("localhost", "cl44-secretdr", "********", "cl44-secretdr"); 

     if (mysqli_connect_error()) 
     { 
     die ("Database Connection Error"); 
     } 

     if (isset($_POST['val'])) 
     { 
     $query = "UPDATE `users` SET `diary` = '".$_POST['val']."' WHERE id = '".$_SESSION['id']."'"; 
     $result = mysqli_query($link, $query); 
     } 
    ?> 
+0

さて、私もそれを試みましたが、まだデータベースを更新しません。私はパスワードとすべてをダブルチェック! –

+0

コードを更新しました –

0

はこれを試してみてください。..

<script type="text/javascript"> 
$(document).ready(function(){ 

$("textarea").on("input propertychange", function() { 
value = $("textarea").val(); 
$.ajax({ 
     type: 'post', 
     url: 'updatediary.php', 
     data:{content:value}, 
     success: function (data) { 
      alert('success'); 
      location.reload(); 
     } 
    }); 
}); 

}); 
</script> 

<?php 
    session_start(); 

    $link = mysqli_connect("localhost", "cl44-secretdr", "********", "cl44-secretdr"); 

    if (mysqli_connect_error()) 
    { 
    die ("Database Connection Error"); 
    } 

    $id =$_SESSION['id']; 
    $content = $_POST['content']; 
    if (isset($content)) 
    { 
    $query = "UPDATE users SET diary = '$content' WHERE id = {$id} "; 
    $result = mysqli_query($link, $query); 
    } 
?> 
関連する問題