2016-07-04 20 views
0

我有一個腳本文件,已經實現了ajax方法,它向表單添加了一條記錄......然後我有一個用作後端的php文件。我想說的是我們在php中聲明記錄變量,我們只在jquery部分聲明它。但是我們是怎麼實際訪問它的?使用PHP作爲後端的jQuery中的Ajax方法

$record = json_decode($_POST['record']); 

什麼是腳本文件中的json_decode和json_stringify。

main.js

$add_form.submit(function(e) { 

     e.preventDefault(); 

     var fields = ['id', 'name', 'subject', 'theory', 'practical']; 
     var record = {}; 

     for (var index in fields) { 

      var field = fields[index]; 

      if (field == 'id' || field == 'theory' || field == 'practical') 
       record[field] = parseInt($('input#add_'+field).val()); 

      else 
       record[field] = $('input#add_'+field).val(); 

     } 


     record.total = record.theory + record.practical; 



     $.ajax({ 
      url: '/ab_batch/practice/db/action.php', 
      type: 'POST', 
      data: { 
       action: 'ajaxAddRecord', 
       record: JSON.stringify(record) 
      }, 

      success: function(result) { 

       if ('true' == result.trim()) { 

        $add_modal.find('.ajax_add_result').text('Student Record Added...').css({ 
         color: 'green', 
         display: 'block' 
        }).fadeOut(2500); 



       } 
       else { 
        $add_modal.find('.ajax_add_result').text('Error Adding Student Record!').css({ 
         color: 'red', 
         display: 'block' 
        }).fadeOut(2500); 
       } 

      }, 

      error: function() {} 

     }); 


    }); 

action.php的

switch ($action) { 
case 'ajaxAddRecord': 

     $record = json_decode($_POST['record']); 
     print ($student->addRecord($record)) ? 'true' : 'false' ; 

     break; 
} 
+0

似乎一切都還好!你有沒有得到任何錯誤?真正的問題是什麼? –

+0

你想讓別人向你解釋這段代碼是如何工作的? –

+0

是的....我想有人解釋我的代碼的一部分...我們在PHP中聲明記錄變量,我們只聲明它在jQuery的一部分。但是我們是怎麼實際訪問它的?使用 $ record = json_decode($ _ POST ['record']); –

回答

2

動作變量在main.js.聲明(創建)你是對的。
這是一個對象,然後使用並填充值。

$.ajax({代碼塊將其發送stringified to action.php。
「串化」表示轉換爲字符串。
必須完成它才能將其發送到服務器端PHP,因爲如果不將對象(或數組)轉換爲字符串,則不能直接發送對象(或數組)。

然後這個字符串,收到了$_POST['record'],必須「解碼」才能訪問這些值。
這就是json_decode所做的...它用它創建一個數組。

谷歌關鍵字畢業論文更多:
jQuery object
JSON.stringify()
json_decode()
PHP array
Ajax example tutorial

+0

好吧...所以ajax方法中的數據字段是我們發送給action.php的部分或我們從action.php收到的部分? –

+0

是的,確切地說'數據'是發送的部分。而「成功」就是「回調」動作,用action.php –

+0

得到的結果沒關係......知道了......非常感謝 –

相關問題