Aufgabe: wenn ich aus wählen Tag Kunde (ich habe customer_id), muss es Anfrage in DB und alle Kunden Feld zurückgeben. Und dann muss es automatisch einige Eingaben füllen. Ich versuche Ajax + jQuery zu machen. Ajax ist gut. Es funktioniert jetzt!Ajax Antwort ist falsch Weg
Hier JS:
ich dies herauszufinden:
<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 init:
$this->_helper->AjaxContext()->addActionContext('add', 'json')->initContext('json');
Ajax Aktion:
$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>
Verwenden Sie Mod-Rewrite einer Art, um die angegebene URL in Ihrem Ajax-Aufruf '/ add' aufzulösen? – dbf
vorübergehend deaktiviert 'isXmlHttpRequest' Check-in-Controller und testen Sie Ajax Aktion direkt im Browser zuerst. Sobald Sie es zum Laufen bringen, fügen Sie Sicherheitsbedingungen hinzu und implementieren Sie Ajax-Anrufe. – Alex
danke für den Rat Alex, ich ändere URL zu '/ baza/add', aber in meinem firebug ist es POST http://www.voskmodel.dev/baza/add \t 200 OK 65ms ich denke customer_id senden nirgendwo – Stopper