2013-07-12 195 views
0

我無法使用.ajax方法通過「POST」請求發送數據。 該腳本顯示來自數據庫的現有數據,然後通過 輸入附加數據1)首先刪除與該id相關的現有行(通過GET請求發送)和2)插入新行,如通過JSON發送的數據所反映的那樣。通過.ajax發送json數據作爲POST請求調用

下面是我的AJAX調用

 <script src="/jquery-1.10.2.min.js"></script> 
     <script src="/knockout-2.3.0.js"></script> 

      var collabModel = function(collab) { 
       var self = this; 
       self.collab= ko.observableArray(collab); 
      //To add empty row into the table 
       self.addcollab = function() { 
        self.collab.push({ 
         Name: "", 
         Lastname: "" 
        }); 
       }; 




self.save = function(form) { 
var loc_id=<?php echo $loc;?>; 
    var data_1_1=ko.toJSON(self.collab); 

         $.ajax({ 
          type:'POST', 
          url:'update_collab_info.php?loc_id='+loc_id, 
          // dataType: 'json', 
          data:data_1_1, 
          processData: false, 
          timeout:2000, 
           success:function(collab){ 
            alert("This looks like"+data_1_1); 
            location.href="www/" 
           } 
          }); 
      }; 
      }; 

     var data_from_database=<?php echo json_encode($result);?>; //This is to display any existing rows of information if present from the database 

     var viewModel = new collabModel(data_from_database); 
     ko.applyBindings(viewModel); 

       ===========================PHP SCRIPT(update_collab_info.php)================== 
        <?php 
       $data_1=$_POST['data_1_1']; 
       $loc_id=$_GET['loc_id']; 
       $data_2=json_decode(stripslashes($data_1)); 

       foreach($data_2 as $row){ 
       //MYSQL query PDO PREPARE statement 
    //insert ($loc_id, $row['name'],$row['lastname']) 
       } 

基本上,場到MySQL的foreach語句插入多排,其中$ loc_id仍然是所有的人都一樣。 ($ loc_id是外鍵)。 我無法將發佈數據導入到PHP腳本中。我確實得到了顯示json數據的警報,但不知何故它不被腳本解釋。該腳本能夠響應通過URL發送的GET變量。我能夠刪除響應獲取請求的mysql查詢,但以某種方式,我從POST數據中獲取作爲json發送的空數組。

+0

您是否嘗試過使用'console.log(data_1_1);'在AJAX調用之前? –

+0

console.log(data_1_1)中什麼也沒有顯示; – deepseas

+0

'var data_1_1 = ko.toJSON(self.collab);'不起作用。看看它,然後回到我們身邊,告訴我們你徹底研究的結果。在問這裏之前,請閱讀[** Stack Overflow Question Checklist **](http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist)。 –

回答

1

如果你想訪問數據爲$_POST["data_1_1"],你必須發送它作爲後var而不是作爲請求正文。

$.ajax({ 
    type: 'POST', 
    url: 'update_collab_info.php?loc_id=' + loc_id, 
    data: { data_1_1:data_1_1 }, 
    timeout: 2000, 
    success: function (collab) { 
     alert("This looks like" + data_1_1); 
     location.href = "www/" 
    } 
}); 
+0

這不起作用,但你認爲URL中的get參數是問題嗎? – deepseas

+0

如果是這樣,這是一個PHP問題,而不是一個JavaScript問題。發送url params和post params不是問題。 –

+0

這實際上是一個PHP問題,因爲我沒有在json_decode($ variable,true)中包含「true」參數。無論如何,你的建議似乎是現貨。謝謝凱文。 – deepseas