Ich versuche, eine Textbox (Kundenname, CustomerAddress, customerMobileno) automatisch ausfüllen, wenn eine Dropdown-Liste (customerid) ausgewählt ist. Die Kunden-ID ist erfolgreich ausgewählt, aber etwas schief läuft Die Controller-Aktion wird abgerufen. Ich bekomme 404 error.I möchte erwähnen, dass ich prettyurl verwende, wie hier gesagt - Yii2. Access to higher level folder.404 Nicht in abhängiger Textbox in select2 Widget in yii2
In firebug Ich erhalte den folgenden fehler-
GET http://localhost:8080/amitopticals/debug/default/toolbar?tag=57a4b1623a201
200 OK
90ms
create (line 545)
GET http://localhost:8080/amitopticals/orders/orders/....php?r=orders/customer/get-for-customer&custid=2
404 Not Found
10ms
jquery.js (line 9175)
ParamsHeadersResponseHTMLCookies
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Object not found!</title>
<link rev="made" href="mailto:[email protected]" />
<style type="text/css"><!--/*--><![CDATA[/*><!--*/
body { color: #000000; background-color: #FFFFFF; }
a:link { color: #0000CC; }
p, address {margin-left: 3em;}
span {font-size: smaller;}
/*]]>*/--></style>
</head>
<body>
<h1>Object not found!</h1>
<p>
The requested URL was not found on this server.
The link on the
<a href="http://localhost:8080/amitopticals/orders/orders/create">referring
page</a> seems to be wrong or outdated. Please inform the author of
<a href="http://localhost:8080/amitopticals/orders/orders/create">that page</a>
about the error.
</p>
<p>
If you think this is a server error, please contact
the <a href="mailto:[email protected]">webmaster</a>.
</p>
<h2>Error 404</h2>
<address>
<a href="/">localhost</a><br />
<span>Apache/2.4.16 (Win32) OpenSSL/1.0.1p PHP/5.6.12</span>
</address>
</body>
</html>
-Code meines select2 Widget und verwandte Javascript -
<?= $form->field($model, 'o_customerid')->widget(Select2::classname(), [
'data' => ArrayHelper::map(Customer::find()->all(),'c_id','customerDetails'),
'language' => 'en',
'options' => ['placeholder' => 'Select Customer Details', 'id' => 'custid'],
'pluginOptions' => [
'allowClear' => true
],
]);
?>
<?php
$script = <<< JS
$('#custid').change(function(){
var custid = $(this).val();
$.get('index.php?r=orders/customer/get-for-customer',{ custid : custid }, function(data){
alert(data);
var data = $.parseJSON(data);
$('#orders-o_customername').attr('value',data.c_name);
$('#orders-o_customeraddress').attr('value',data.c_address);
$('#orders-o_customermobno').attr('value',data.c_mobileno);
});
});
JS;
$this->registerJs($script);
?>
Controller Aktion in CustomerController -
public function actionGetForCustomer($custid)
{
$customer = Customer::find()->where(['c_id'=>$custid])->asArray()->one();
echo Json::encode($customer);
}
Hallo scaisEdge, die Controller-Aktion verwenden, erhalten war in CustomerController. aber "Kunde/Kunde" funktionierte nicht und "Kunde/Kunde". Dann habe ich die Controller-Aktion nach OrdersController verschoben und versucht "Get-for-Customer" zu bekommen und es hat funktioniert. Aber wie kann ich das von einem anderen Controller (in diesem Fall CustomerController) verwenden? – Tanmay
Im Auftragsmodul befinden sich 2 Controller - OrdersController und CustomerController. – Tanmay
In customerController können Sie Url :: to verwenden ('[Bestellungen/Kunden erhalten']); Mit UrlHelpers müssen Sie 'use yii \ helpers \ URL;' – scaisEdge