2016-03-25 23 views
0

Bazı verileri bir veritabanına bir html formu kullanmadan kaydetmeye çalışıyorum ve PHP'de uzman olmadığım için bana yardım edip edemeyeceğini merak ediyorum. Şu ana kadar var:Bir form olmadan jQuery ve PHP kullanarak kaydetme

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"); 
       } 
      }); 
     }); 

tüm değerleri doğru değişkenleri depolanır olarak hiçbir sorun ilk aşamada yoktur. Onları save.php'ye göndermek için hangi formatta olduğunu bilmiyorum.

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(); 
    } 
} 
?> 

Ben veritabanına gönderilmek üzere işlemek için nasıl bu veriler daha sonra save.php ve nasıl yayın emin değilim. Ayrıca, geçerli tarihi veritabanındaki bir alana göndermek için current_date değişkenini ekledim.

Herkes bana yardım edebilir ve boşlukları doldurabilir mi? Ya da belki bu yanlış yoldan gidiyorum?

+0

Sunucu tarafındaki üyeleri dönüştürmek zorunda değilsiniz. jQuery, bunları birden çok ayrı parametre olarak gönderir. –

cevap

1

şöyle bir nesnenin verilerinizi gönder:

// 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"); 
    } 
}); 

Sonra sunucu tarafında, sen üzerinden doğrudan erişebilirsiniz $_POST superglobal:

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

Mükemmel çalıştı. Çok teşekkürler –

1

Sen tüm bu veri gönderebilir ('özet. ')

$ üzerinde (, işlevi '#btn_save'' klik'() {

: veri parametresi aşağıda verilen.
 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"); 
      } 
     }); 
    }); 

Ve bunu, bu $ summary_weight = $ _POST ['summary_weight'] gibi save.php içinde işleyin; ve veritabanında kaydetmek için sorguda kullanın.

+0

@cale_b: Teşekkürler, akılda tutar. – Aparna

İlgili konular