任務:當我從選擇標籤客戶(我有customer_id)中選擇時,它必須向DB請求並返回所有客戶字段。然後它必須自動填充一些輸入。我嘗試製作ajax + jQuery。 Ajax很好。它正在工作!阿賈克斯響應錯誤的方式
這裏的JS:
我想出解決辦法:
<script>
$(document).ready(function() {
$('#customer_load').change(function() {
$.ajax({
url: '<?= $this->url(array('action' => 'ajax', 'controller' => 'baza')) ?>',
type: 'POST',
dataType: 'json',
data: {
// list of request parameters
'customer_id': $(this).attr('value')
},
success: function(data) {
//alert(data.current_discount);
$('#extra_discount').val(data.extra_discount);
$('#current_discount').val(data.current_discount);
$('#customer_number').val(data.customer_id);
}
});
});
});
PHP初始化:
$this->_helper->AjaxContext()->addActionContext('add', 'json')->initContext('json');
阿賈克斯行動:
$id= $this->_getParam('customer_id');
$result = $this->_customers->fetchSelected($id);
$this->view->customers = $result;
$this->_helper->json($result);
HTML:
<select name="customer_id" id="customer_load" style="width:300px;">
<option value="0">Выберите заказчика</option>
?php foreach ($this->customers as $cus): ?>
<option value="<?= $cus['customer_id'] ?>"" <?php if ($cus['customer_id'] == $this->form_data['customer_id']) echo "selected"; ?> ><?= $cus['lastname'] . " " . $cus['name'] ?></option>
<?php endforeach; ?>
<option value="new" onclick="NewCustomer()">Новый заказчик</option>
</select>
爲了解決Ajax調用'/ add'中給定的URL,你是否使用了某種類型的mod重寫? – dbf
暫時禁用'isXmlHttpRequest'檢查控制器,並首先在瀏覽器中直接測試您的ajax操作。一旦你得到它的工作增加安全條件,並實施你的阿賈克斯調用。 – Alex
感謝亞歷克斯的建議,我改變URL以「/巴扎/加」,但在我的螢火蟲是 POST http://www.voskmodel.dev/baza/add \t 200確定爲65μs 我猜CUSTOMER_ID發送無處 – Stopper