2015-11-15 75 views
0

我有一個包含以下幾個類型的元素訪問使用AJAX/PHP

<input type="hidden" name="selected_models[]" value="1">1</td> 
<input type="hidden" name="selected_models[]" value="2">2</td> 
<input type="hidden" name="selected_models[]" value="3">3</td> 
<input type="hidden" name="selected_models[]" value="4">4</td> 

我想通過這個數組的形式,用我所有的其他形式的數據,以一個jQuery $沿着隱藏的輸入數組.post函數,但我無法正確訪問php中的數據。

我已經嘗試過使用下面(jQuery的)來傳遞:

var _data = { models: $('input[name="selected_models[]"]').serialize() } 

,然後使用訪問它在PHP:

$models = $_POST['models']; 

只是試圖檢查數據的目的,我將此變量傳遞給ajax響應,並將其記錄回控制檯使用:

Php 
$response = jseon_encode( 
    array(
     'success' => true, 
     'models' => json_encode($models) 
    ) 
); 

JS 
console.log(JSON.parse(response.models) 

,它輸出以下內容:

selected_models%5B%5D=37&selected_models%5B%5D=51&selected_models%5B%5D=57 

所以,老老實實現在我只是堅持瞭如何通過PHP這些值循環,所以我其實可以做他們的東西。理想情況下,我可以這樣做:

Php 
foreach ($models as $model) { 
    $id = $model.selected_models 
    // Do more stuff 
} 

但是,這是行不通的。我究竟做錯了什麼?

+0

我可以看到html表單嗎? – aldrin27

回答

0

我結束了在jQuery的解決這一點,並傳遞一個解析值到PHP,而不是:

var uniqueModels = []; 

if (document.getElementById('acInheritFromVehicle').checked) { 
    var models = jQuery('input[name="selected_models[]"]:checked'); 
    var modelIDs = []; 

    //console.log(models); 

    models.each(function() { 
     if(jQuery.inArray()) 
     modelIDs.push(jQuery(this).val()); 
    }); 

    uniqueModels = unique(modelIDs); 

    uniqueModels = jQuery.grep(uniqueModels, function(value) { 
     return value != 0 
    }); 

    //console.log(uniqueModels); 
} 
0

你是做正確的,只是一些小的PHP的調整,你會得到它。一旦序列化數據併發送到PHP,您可以使用print_r($models)函數始終檢查該數組的外觀。

要遍歷您$models陣列,請執行以下操作:

foreach($models as $model) { 
 
    echo 'Value of hidden input is: ' . $model; 
 
    echo '<br />'; 
 
}

$model將代表通過PHP請求中收到的實際值。 Check out this example