2017-05-04 21 views
0

首先要說明的是我正在做的事情:我正在製作一個簡單的表單,其中包含一個用於更新公司的ajax請求(在表單提交按鈕上)信息,我是相當新的PHP,但想要​​在ajax中使用數據傳輸對象(就像我以前在其他語言中做過的那樣),但我沒有越來越多如何在SQL更新中使用DTO對象上的值

好吧,這可能是一個非常簡單的題。就像我上面說的,我之前使用過AJAX數據傳輸對象,只是沒有使用PHP ...我得到了一點勉強,因爲我似乎無法選擇對象數據在目標頁面的sql更新中使用。我可以在console.log中看到對象看起來完全形成幷包含數據,但我不能爲我的生活獲取選擇數據的語法!幫助

Ajax請求:

var $CompanyName = $("#CompanyName").val(), 
     $TelNumberAreaCode = $("#TelNumberAreaCode").val(), 
     $TelNumber = $("#TelNumber").val(), 
     $EmailAddress = $("#EmailAddress").val(), 
     $AddressLine1 = $("#AddressLine1").val(), 
     $AddressLine2 = $("#AddressLine2").val(), 
     $AddressCity = $("#AddressCity").val(), 
     $AddressCounty = $("#AddressCounty").val(), 
     $AddressPostCode = $("#AddressPostCode").val(); 

     var CompanyDetailsDTO = {}; 
     CompanyDetailsDTO.CompanyName = $CompanyName; 
     CompanyDetailsDTO.TelNumberAreaCode = $TelNumberAreaCode; 
     CompanyDetailsDTO.TelNumber = $TelNumber; 
     CompanyDetailsDTO.EmailAddress = $EmailAddress; 
     CompanyDetailsDTO.AddressLine1 = $AddressLine1; 
     CompanyDetailsDTO.AddressLine2 = $AddressLine2; 
     CompanyDetailsDTO.AddressCity = $AddressCity; 
     CompanyDetailsDTO.AddressCounty = $AddressCounty; 
     CompanyDetailsDTO.AddressPostCode = $AddressPostCo; 

     var DTO = { 'request': CompanyDetailsDTO } 

     $.ajax({ 
       type: "POST", 
       url: "php/updates/update-businessdetails.php", 
       data: JSON.stringify(DTO), 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: CompanyDetailsSuccess, 
       error: CompanyDetailsError 
      }); 

PHP更新/目標文件代碼:

<?php 
// DB Connection 

// How can i pick the below vars out the object??? 
// I've tried loads of different syntaxes that i think should/could be right 
$CompanyName = ?? 
$TelNumberAreaCode = ?? 
$TelNumber = ?? 
$EmailAddress = ?? 
$AddressLine1 = ?? 
$AddressLine2 = ?? 
$AddressCity = ?? 
$AddressCounty = ?? 
$AddressPostCo = ?? 


$sql="UPDATE `businessdetails` SET `TelNumberAreaCode` = '$TelNumberAreaCode',`EmailAddress` = '$EmailAddress',`AddressLine1` = '$AddressLine1',`AddressLine2` = '$AddressLine2',`AddressCity` = '$AddressCity',`AddressCounty` = '$AddressCounty',`TelNumber` = '$TelNumber',`AddressPostCode` = '$AddressPostCode',`CompanyName` = '$CompanyName'"; 

$result = $conn->query($sql); 

if ($result) 
{ 
    header('Content-Type: application/json'); 
    print json_encode($result); 
} 
?> 

我必須做一些錯誤的,或愚蠢的我似乎無法要麼找到答案?!

+0

首先你的SQL是不是安全的。 http://bobby-tables.com/ – Xidh

+0

As或AJAX是一個'POST'請求​​,你可以使用'$ _POST ['var_name']' – Xidh

+0

'來取得這個值,而不是使用'JSON.stringify',你可以放一個' var postdata = {'plataforma':「valhere」};' – Xidh

回答

0

嘗試使用json_decode()

// @var stdClass 
$decoded_data = json_decode(file_get_contents('php://input'), false); 

// And access its properties: 
$CompanyName = $decoded_data->request->CompanyName; 
$TelNumberAreaCode = $decoded_data->request->TelNumberAreaCode; 
// ... 
+0

這工作對我來說,非常感謝你,我不期待的PHP:/ /輸入,但看到你的答案和閱讀[鏈接]後(http://stackoverflow.com/questions/8893574/php-php-input -vs-post)我明白爲什麼我的$ _POST測試不起作用 –

+0

我很高興它有幫助。 –

相關問題