2016-05-30 21 views
0

レコードごとにAJAXリクエストでデータベースを更新したいとします。問題は、編集をサブミットすると500エラーが発生することです。更新 'RecordData'は私にすべてのデータを提供しますが、それはそれです。PHP&AJAXリクエスト500(内部サーバーエラー)

私の更新ファイル。

$data = $_POST['recordData']; 
    str_parse($data, $data); 

    echo "Record Id is: " . $data[0]; 
    echo $query = "UPDATE bier 
       SET naam = '$data['naam'], brouwer = '$data['brouwer']', type = '$data['type']', gisting = '$data['gisting']', perc = '$data['perc']', inkoop_prijs = '$data['inkoop_prijs']' 
       WHERE id= '".$data['id']."'"; 
    if (mysqli_query($conn, $query)) { 
     echo "Record updated successfully"; 
    } else { 
     echo "Error updating record: " . mysqli_error($conn); 
    } 
    mysqli_close($conn); 

echo $_POST['recordId']; 

私のAJAX機能

function editRecord(data){ 
console.log(data); 

$.ajax({ 
    type: "POST", 
    data: { 
     database: 'updateRecords', 
     recordData: data.serialize() 
    }, 
    url: "actions/update.php", 
    dataType: "html", 
    async: false, 
    success: function(data) { 
     ModalClose(); 
    } 
}); 
} 

そして、私のフォーム:

 <form id="FormBier" action="#" method="post"> 
     <table> 
      <tr> 
       <td>Id</td> 
       <td><input type="text" name="id"></td> 
      </tr> 
      <tr> 
       <td>Naam</td> 
       <td><input type="text" name="naam"></td> 
      </tr> 
      <tr> 
       <td>Brouwer</td> 
       <td><input type="text" name="brouwer"></td> 
      </tr> 
      <tr> 
       <td>Type</td> 
       <td><input type="text" name="type"></td> 
      </tr> 
      <tr> 
       <td>Gisting</td> 
       <td><input type="text" name="gisting"></td> 
      </tr> 
      <tr> 
       <td>Percentage</td> 
       <td><input type="text" name="perc"></td> 
      </tr> 
      <tr> 
       <td>Inkoop Prijs</td> 
       <td><input type="text" name="inkoop_prijs"></td> 
      </tr> 
      <tr> 
       <input type="submit" onclick="editRecord($('#FormBier'))" value="bewerk"> 
      </tr> 
     </table> 
    </form> 
</div> 
+0

500 - ログを確認してください –

+1

'str_parse 'とは何ですか? ['parse_str'](http://php.net/manual/en/function.parse-str.php)を使用することを意味しましたか?もしそうなら、関数を使用しようとしているので、500を取得しています。' str_parse '、それは存在しないし、あなたがあなたのクエリを適切に引用しなかったからです。 Fred -ii-が指摘しているように、サーバーエラーログ –

+0

を@PatrickEvansのエラー報告が未定義の関数について何か投げてしまったことを確認する必要があります。 –

答えて

0

チェックPOST変数のコード下記の言及としてISSETと変更クエリを使用。

echo $query = 'UPDATE bier SET naam = '.$data["naam"].', brouwer = '.$data["brouwer"].', type = '.$data["type"].', gisting = '.$data["gisting"].', perc = '.$data["perc"].', inkoop_prijs = '.$data["inkoop_prijs"].' WHERE id= '.$data["id"]; 
+0

問題はクエリにはありませんが、入力フィールドに入力したテキストは使用されません。 – pieter771

+0

これを試して、変数.print_r($ _ POST)で入力をチェックしてください。 – MPMP

関連する問題