2016-07-04 77 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

得到的结果没关系......知道了......非常感谢 –