2016-03-25 8 views
0

私はhtmlフォームを使用せずにデータベースにデータを保存しようとしています。これまでのところ私が持っている:jQueryとPHPを使用してフォームなしでデータベースに保存

jQueryの

$('.summary').on('click', '#btn_save', function() { 

      var summary_weight = $('#summary_weight').text(); 
      var summary_bmi = $('#summary_bmi').text(); 
      var summary_consumed = $('#summary_consumed').text(); 
      var summary_burned = $('#summary_burned').text(); 
      var summary_total = $('#summary_total').text(); 
      var user_id = $('#user_id').text(); 

      //All values stored correctly 

      $.ajax({ 
       type: "POST", 
       url: "save.php", 
       data: //Data to send, 
       success: function() { 
        $('.success_message').html("success"); 
       } 
      }); 
     }); 

私のすべての値が正しく変数に格納されているような第1段階では何​​も問題はありません。私はちょうどsave.phpにそれらを送るためにどんなフォーマットで知らない。私は、データベースに送信されるように、それをどのように処理するかを、その後save.phpとし、このデータをポストするかどうかはわかりません

<?php 
require_once 'dbconfig.php'; 
//Connects to database 

if($_POST) 
{ 
    //Not sure what to post here 

$current_date = date('Y-m-d'); 

    try{ 

    $stmt = $db_con->prepare("INSERT INTO entry(user_id, date, weight, bmi, calories_consumed, calories_burned, calorific_deficit) VALUES(:user, :date, :weight, :bmi, :consumed, :burned, :deficit)"); 

    $stmt->bindParam(":user", $user_id); 
    $stmt->bindParam(":date", $current_date); 
    $stmt->bindParam(":weight", $summary_weight); 
    $stmt->bindParam(":bmi", $summary_bmi); 
    $stmt->bindParam(":consumed", $summary_consumed); 
    $stmt->bindParam(":burned", $summary_burned); 
    $stmt->bindParam(":deficit", $summary_total); 

    if($stmt->execute()) 
    { 
    echo "Successfully Added"; 
    } 
    else{ 
    echo "Query Problem"; 
    } 
    } 

    catch(PDOException $e){ 
    echo $e->getMessage(); 
    } 
} 
?> 

save.php

。 current_dateの変数を追加して、現在の日付をデータベースのフィールドに送りました。

誰でも私を助け、空白を記入できますか?あるいは、私はこれについて間違った方法をとっていますか?

+0

サーバー側のメンバーを変換する必要はありません。 jQueryはそれらを複数の別々のパラメータとして送信します。 –

答えて

1

そうのように、オブジェクトにデータを送信します。

// Declare data as an empty object 
var data = {}; 
// Assemble the properties of the data object 
data.summary_weight = $('#summary_weight').text(); 
data.summary_bmi = $('#summary_bmi').text(); 
data.summary_consumed = $('#summary_consumed').text(); 
data.summary_burned = $('#summary_burned').text(); 
data.summary_total = $('#summary_total').text(); 
data.user_id = $('#user_id').text(); 

$.ajax({ 
    type: "POST", 
    url: "save.php", 
    // pass the data object in to the data property here 
    data: data, 
    success: function() { 
     $('.success_message').html("success"); 
    } 
}); 

そして、サーバ側で、あなたが経由で直接アクセスすることができ$_POSTスーパーグローバル:

$summary_weight = $_POST['summary_weight']; 
$summary_bmi = $_POST['summary_bmi']; 
// etc... 
+0

それは完全に働いた。ありがとうございました –

1

あなたはこのすべてのデータを送信することができますデータパラメータ下記の通り:

$( '要約。 ')(' クリック'、 '#btn_save'、機能(){

に。
 var summary_weight = $('#summary_weight').text(); 
     var summary_bmi = $('#summary_bmi').text(); 
     var summary_consumed = $('#summary_consumed').text(); 
     var summary_burned = $('#summary_burned').text(); 
     var summary_total = $('#summary_total').text(); 
     var user_id = $('#user_id').text(); 

     //All values stored correctly 

     $.ajax({ 
      type: "POST", 
      url: "save.php", 
      data: {summary_weight: summary_weight, summary_bmi:summary_bmi, summary_consumed:summary_consumed, summary_burned: summary_burned, summary_total:summary_total, user_id:user_id }, 
      success: function() { 
       $('.success_message').html("success"); 
      } 
     }); 
    }); 

そして、これをsave.phpで処理します。 $ summary_weight = $ _POST ['summary_weight']; を入力し、クエリで使用してデータベースに保存します。

+0

@cale_b:ありがとう、それを念頭に置いておきます。 – Aparna