Bukas
Isara

Ipasa ang data gamit ang post method sa json format. Javascript string Nagpapadala ng JSON sa server at tumatanggap ng JSON bilang kapalit, nang walang JQuery. Mga function ng PHP para sa pagtatrabaho sa format na JSON

Mula sa paksang ito matututunan mo kung paano magpadala ng mga function ng JavaScript sa pamamagitan ng JSON gamit ang PHP (ang konsepto mismo ay maaaring ilapat sa ibang mga wika).

Kasama sa PHP mula noong bersyon 5.2.0 ang json_encode() at json_decode() function. Ang mga function na ito ay nag-encode ng data sa JSON at nagde-decode ng JSON sa mga nauugnay na array. Hindi ma-encode ang function sa json_encode(). Sa ilang mga kaso, ito ay talagang hindi maginhawa.

  1. Nagdagdag ng halimbawang pagpapatupad sa Zend Framework.
  2. Tanong para sa mga karmavampires - alam mo ba kung paano ipasa ang isang handler upang lumikha ng isang bagay sa ibang paraan?
  3. Komentaryo sa kung bakit at sino ang nangangailangan nito.

Problema

// Kumuha ng arbitrary array
$foo = array(
"numero" => 1,
"float" => 1.5,
"array" => array(1,2),
"string" => "bar",
"function" =>
);
// Ngayon i-convert ang array sa JSON
$json = json_encode($foo);
// Ibigay ito sa kliyente
echo $json;

Resulta

{
"numero" :1,
"lumutang" :1.5,
"array" :,
"string" : "bar",
"function": "function())(return \"foo bar\";)"
}

* Ang source code na ito ay na-highlight gamit ang Source Code Highlighter.

Dahil kung hindi mo isasama ang kahulugan ng function sa mga quote, iyon ay, kung hindi mo ito tinukoy bilang isang string, ang code ay hindi isasagawa. Kaya, sa prinsipyo, ang jscon_encode() ay hindi angkop para sa pagpapatupad ng pagpapaandar na ito.

Solusyon

  1. Dumadaan kami sa array na ie-encode.
  2. Sinusuri namin ang naka-encode na halaga para sa pagkakaroon ng isang kahulugan ng function.
  3. Naaalala namin ang halaga at pinapalitan namin ito ng isang natatanging label.
  4. I-encode namin ang binagong array gamit ang json_encode().
  5. Palitan ang natatanging label ng orihinal na halaga.
  6. Nagpapadala kami ng JSON sa kliyente.
// Naprosesong array.
$foo = array(
"numero" => 1,
"float" => 1.5,
"array" => array(1,2),
"string" => "bar",
"function" => "function())(ibalik ang "foo bar";)"
);

$value_arr = array();
$replace_keys = array();
foreach ($foo bilang $key => &$value )(
// Suriin ang mga halaga para sa kahulugan ng function
if (strpos($value , "function(" )===0)(
// Alalahanin ang halaga para sa kapalit sa ibang pagkakataon.
$value_arr = $value ;
// Palitan ang kahulugan ng function ng isang "natatanging" label..
$value = "%" . $key . "%" ;
// Tandaan ang label para sa kapalit sa ibang pagkakataon.
$replace_keys = """ . $value . """ ;
}
}

// I-encode ang array sa JSON
$json = json_encode($foo);

// Ang resultang $json ay magiging ganito:
{
"numero" :1,
"lumutang" :1.5,
"array" :,
"string" : "bar",
"function" :"%function%"
}

// Palitan ng mga orihinal na halaga.
$json = str_replace($replace_keys, $value_arr, $json);

// Ipadala sa kliyente.
echo $json;

// Ang kliyente ay makakatanggap ng JSON tulad nito:
{
"numero" :1,
"lumutang" :1.5,
"array" :,
"string" : "bar",
"function" :function())(ibalik ang "foo bar" ;)
}

* Ang source code na ito ay na-highlight gamit ang Source Code Highlighter.

Ngayon sa nagresultang bagay, ang "function" ay hindi isang string, ngunit isang function. Sa totoo lang, nalutas ang problema. Kung gagamitin mo ang solusyon na ito kasabay ng Prototype, magiging ganito ang hitsura nito:
bagong Ajax.Request("json_server.php" , (
paraan: "kumuha",
onSuccess: function(transport)(
var json = transport.responseText.evalJSON();
alert(json.function()); // => Ang alerto na "foo bar" ay ipapakita
}
});

* Ang source code na ito ay na-highlight gamit ang Source Code Highlighter.

Pagpapatupad sa Zend Framework:

$foo = array(
"integer" =>9,
"string" => "test string" ,
"function" => Zend_Json_Expr(
"function())( window.alert("javascript function na na-encode ni Zend_Json"))"
),
);

Zend_Json::encode($foo, false , array("enableJsonExprFinder" => true ));
// ibabalik nito ang string na naka-encode ng json:
{
"integer" :9,
"string" : "test string" ,
"function" :function())(
window.alert( "javascript function na na-encode ni Zend_Json")
}
}

* Ang source code na ito ay na-highlight gamit ang Source Code Highlighter.

Mayroon akong pahina ng pagpaparehistro upang payagan ang mga gumagamit na magparehistro. Kailangan kong kumpirmahin ang aking numero ng telepono bago magparehistro. Ibinigay ko ang address ng serbisyo sa web kasama ang mga parameter nito.
ang mga parameter na ibinigay ko:

Http://********* Paraan:POST Header:Content-Type:application/json Body: ang sumusunod sa: ( "mobileNo":"0*********", " service":"****", "Code1":"*****", "content":"hi", "actionDate":"2017/09/26", "requestId":"1")

at narito ang code na nakita ko sa internet:

$data = array("mobileNo" => "****", "service" => "***", "Code1" => "*****", "content" => "55", "actionDate" => "2017/09/26"); $options = array("http" => array("paraan" => "POST", "content" => json_encode($data), "header"=> "Content-Type: application/json" . "Tanggapin: application/json")); $url = "******"; $context = stream_context_create($options); $result = file_get_contents($url, false, $context); $tugon = json_decode($result);

at narito ang error na nakatagpo ko kapag nagsuri ako para sa lokal:

File_get_contents(http://********/sms-gateway/sms-external-zone /receive): nabigong magbukas ng stream: Nabigo ang isang pagtatangka sa koneksyon dahil hindi tumugon nang maayos ang konektadong partido pagkatapos ng isang yugto ng panahon , o nabigo ang itinatag na koneksyon dahil nabigong tumugon ang nakakonektang host.

at walang error at walang resulta (makatanggap ng SMS) bilang tugon kapag nag-test ako online (cpanel server)

Batay sa ibinigay na mga parameter, saan ako mali?

salamat in advance.

Solusyon

Batay sa iyong error, hindi tumutugon ang iyong serbisyo. Nasubukan mo na bang buksan ito sa isang browser upang makita kung nandoon ang sagot?

Posible na ang serbisyong sinusubukan mong tawagan ay nangangailangan sa iyo na magbigay ng isang static na IP address mula sa iyong web server, dahil nagbibigay lamang sila ng access sa antas ng IP. Nangangahulugan ito na ang iyong IP ay naharang hanggang sa payagan nila ito.

Iminumungkahi kong gamitin mo ang cURL upang matupad ang iyong kahilingan. Sa paraang ito, mayroon kang data sa hinaharap upang i-debug kung ang mga bagay ay hindi gagana. Dito rin, kung hindi tumutugon ang serbisyo, gusto mong makakuha ng anumang iba pang impormasyon.

$data = array("mobileNo" => "****", "service" => "***", "Code1" => "*****", "content" => "55", "actionDate" => "2017/09/26"); $url = "******"; $ch = curl_init($url); // itakda ang data bilang json string curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); // define json as content type curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type:application/json")); // tell curl to fetch return data curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // sundan ang lokasyon kung mangyari ang pag-redirect tulad ng http sa https curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // magpadala ng kahilingan $result = curl_exec($ch); // ay nagbibigay sa iyo ng resulta - kadalasang gusto mo lang itong var_dump($result); // para sa layunin ng pag-debug, binibigyan ka ng buong impormasyon ng koneksyon var_dump(curl_getinfo($ch)); // ibinabalik ang anumang mga error na naganap var_dump(curl_error($ch)); curl_close($ch);

Ang JSON ay isang text format para sa pagtatala ng data. Binibigyang-daan ka nitong kumatawan sa text form ng parehong numero o string, at mga kumplikadong istruktura, halimbawa, mga array na may data. Ang paggamit ng format ng pag-record na ito ay maginhawa dahil ito ay nababasa at madaling maunawaan, habang nagbibigay-daan sa iyo na mag-imbak ng napakakumplikadong mga istruktura ng data. Bilang karagdagan, ito ay mas compact kaysa sa xml, kaya sa aking opinyon ito ay mas kanais-nais para sa pagpapalitan ng data sa pagitan ng isang web browser at isang server.

JSON syntax na may mga halimbawa

Ang format ng json ay karaniwang nakasulat sa 2 variant:

1. Pagkakasunod-sunod ng mga halaga. Halimbawa, ang sequence 10, 15 at "test" sa JSON format ay magiging ganito:

2. Pagre-record nang magkapares susi: halaga . Halimbawa:

("Buong pangalan": "Ivanov Sergey", "Petsa ng kapanganakan": "03/09/1975")

Isang bahagyang mas kumplikadong halimbawa:

("Buong Pangalan": "Ivanov Sergey", "Address": ("Lungsod": "Moscow", "Kalye": "Pyatnitskaya", "Bahay": "35") )

Mga function ng PHP para sa pagtatrabaho sa format na JSON

Sa wikang PHP mula noong bersyon 5.2. mayroon lamang 4 na function:

  • json_decode- Nagde-decode ng JSON string (kumukuha ng data mula sa json format string)
  • json_encode- Nagbabalik ng JSON na representasyon ng data (i-convert ang data sa isang JSON string)
  • json_last_error_msg- Nagbabalik ng string na nagsasaad ng mensahe ng error ng huling tawag sa json_encode() o json_decode()
  • json_last_error- Ibinabalik ang huling error

Karaniwan, para sa karamihan, dalawang pag-andar lamang ang ginagamit: json_encode At json_decode. I will not go into details of their syntax, you can look at php.net for more details. Halimbawa ng paggamit:

$arr1 = array(0,1,2); $json_str = json_encode($arr1); echo $json_str; // ay maglalabas ng json string: $arr2 = json_decode($json_str); echo $arr2; // ay maglalabas ng: 1

tala : sa pag-encode sa format ng data ng JSON sa Russian, ang json_encode function ay nagko-convert ng mga Russian character sa unicode, ibig sabihin. pinapalitan sila ng \uXXXX at sa gayon ang json string ay nagiging hindi nababasa para sa mga tao (ngunit naiintindihan para sa browser). Kung gusto mong maiwasan ang conversion sa Unicode (halimbawa, kapag nagde-debug ng code), maaari mong gamitin lang ang opsyong JSON_UNESCAPED_UNICODE.

Gayundin, para hindi maidagdag ang mga escaping slash sa panahon ng pag-encode at para ma-encode ang mga string na may mga numero bilang mga numero, maaari mong gamitin ang JSON_UNESCAPED_SLASHES at JSON_NUMERIC_CHECK. Bilang resulta, upang gawing nababasa ng tao ang json string, gagawin namin, halimbawa, ito:

$arr = array("fio" => "Ivanov Sergey", "edad" => "32", "vk_url" => "https://vk.com/id11111"); echo json_encode($arr, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK);

Kung hindi ginagamit ang mga pagpipiliang ito ang linya ay magiging ganito:

( "fio" : "\u0418\u0432\u0430\u043d\u043e\u0432 \u0421\u0435\u0440\u0433\u0435\u0439", "edad" : "32", "vk_url/\": " /vk.com\/id11111")

at gamit ang mga opsyon, nakakakuha kami ng nababasang linya:

( "fio" : "Ivanov Sergey", "edad" : 32, "vk_url" : "https://vk.com/id11111")

Isa pang punto: kung kailangan mo ng function na mag-decode ng json string Ibinalik ng json_decode ang eksaktong array, magdagdag lamang ng pangalawang parameter sa function na katumbas ng true.

$json_str = "( "a":1, "b":2, "c":3 )"; $obj = json_decode($json_str); // makuha ang object echo $obj->a; // ay maglalabas ng 1 $arr = json_decode($json_str, true); // kumuha ng associative array echo $arr["a"]; // ay magpi-print ng 1

Tinatapos nito ang aking pagsusuri sa mga function ng PHP.

Mga function ng JavaScript para sa pagtatrabaho sa format na JSON

Magsimula tayo sa katotohanan na ang format ng JSON ay orihinal na naimbento para sa wikang JavaScript at pagkatapos ay naging isang hiwalay na format ng teksto na ginamit sa iba't ibang wika. Tila, ito ang dahilan kung bakit ang JSON syntax ay halos kapareho sa syntax para sa pagsusulat ng mga ordinaryong bagay at array.

// Halimbawa ng array sa JavaScript arr = ; alerto(arr); // will display 1 // Halimbawa ng object sa JavaScript obj = ( "name": "Vasya", "age": 35, "isAdmin": false ) alert(obj.name); // ay magpi-print ng "Vasya"

Mga function ng JavaScript na ginagamit upang mag-convert sa at mula sa JSON na format:

  • JSON.parse- decoding JSON string (pag-convert ng string sa mga bagay at/o array)
  • JSON.stringify- nagbabalik ng JSON na representasyon ng data (pag-convert ng mga bagay at/o mga array sa isang json string)

Isang simpleng halimbawa ng pag-decode ng json string sa isang array na may mga numero:

Str = ""; arr = JSON.parse(str); alerto(arr); // ay magpi-print ng 1

Isang halimbawa ng pag-convert (pagse-serialize) ng isang bagay sa isang string ng JSON:

Obj = ( "pangalan": "Vasya", "edad": 35, "isAdmin": false ) alerto(JSON.stringify(obj)); // will display ("name":"Vasya","age":35,"isAdmin":false)

Kapag nagse-serialize (nagko-convert) ng isang bagay sa isang JSON string, ang pamamaraan ay tinatawag saJSON bagay na ito, kung mayroon. Kung walang paraan, ang lahat ng mga katangian ng bagay ay nakalista. Isang halimbawa ng pag-convert ng object gamit ang toJSON method:

Obj = ( "pangalan": "Vasya", "edad": 35, "isAdmin": false, toJSON: function() ( return this.age; ) ) alert(JSON.stringify(obj)); // ay magpi-print ng 35

Mga halimbawa ng praktikal na aplikasyon ng JSON format

Sa totoo lang, personal kong ginagamit ang format ng JSON sa 2 pangunahing sitwasyon:

1. Paglilipat ng data sa pagitan ng browser at ng server gamit ang mga kahilingan ng Ajax.

Halimbawa, mayroon kaming ilang pahina kung saan kailangan naming i-update ang data nang hindi nire-reload ang pahina. Sabihin nating kailangan mo ng impormasyon na may listahan ng mga empleyado at ang kanilang data upang "ma-download" mula sa server.

Sa JavaScript, gamit ang jQuery, ginagawa namin itong simple at ipinapakita ang data sa anyo ng isang talahanayan sa browser:

$.getJSON("get-info.php").success(function(data) ( // kahilingan ng ajax, isusulat ang data mula sa server sa data variable htmlstr = "

"; para sa (var i=0; i "; // unang hanay - buong pangalan htmlstr +=" "; // pangalawang hanay - Petsa ng kapanganakan htmlstr += ""; ) htmlstr = "
" + data[i].birthday + "
"; $("div.info").html(htmlstr); // sa isang div na may klase ng impormasyon ipinapakita namin ang resultang talahanayan na may data ));

Sa server, ang get-info.php script kung saan ginawa ang isang kahilingan sa ajax, halimbawa, ay maaaring maging ganito:

$user_info = array(); // create an array with data $user_info = array ("fio" => "Ivanov Sergey", "birthday" => "03/09/1975"); $user_info = array ("fio" => "Alexey Petrov", "birthday" => "09.18.1983"); echo json_encode($user_info); labasan;

Sa halimbawang ito, ang string ng JSON na ipinasa mula sa server patungo sa browser ay ganito:

[("fio":"Sergey Ivanov","birthday":"03/09/1975"),("fio":"Alexey Petrov","birthday":"09/18/1983")]

Sinadya kong hindi ipakita ang linya sa anyo ng isang "puno", dahil ito ay ipinadala nang eksakto sa form na ito. At paano mo masusuri, ang pag-record ng data sa JSON format ay naging napaka-compact, na nangangahulugan na ang paglipat ng data na ito mula sa server patungo sa browser ay halos madalian.

2. Pagsusulat ng mga kumplikadong istruktura ng data sa database.

Minsan may mga sitwasyon kung kailan hindi ipinapayong lumikha ng isa pang talahanayan sa database upang mag-imbak ng iba't ibang data. Sabihin nating ang isang user na nakarehistro sa site ay may pagkakataon na i-customize ang kulay ng background at kulay ng teksto.

Sa halip na lumikha ng isa pang talahanayan para sa 2 mga setting, maaari kang gumawa lamang ng isang text column sa talahanayan na may listahan ng mga user kung saan ilalagay ang data ng mga setting ng user. Kung gayon ang kahilingan sa pag-update ng mga setting ay maaaring, halimbawa, ay ganito:

I-UPDATE ang mga setting ng user SET = "("background-color":"#FFFFFF", "text-color":"#000000")" WHERE user_id = 10

Sa hinaharap, na natanggap mula sa talahanayan mga gumagamit impormasyon, madaling maibabalik ng php script ang mga ito sa isang array na may mga setting. Halimbawa, kung ang variable na $user_info ay naglalaman ng data na nakuha para sa isang user mula sa talahanayan ng mga user, ang pagkuha ng array na may mga setting ay napakasimple:

$settings = json_decode($user_info["setting"], true); echo "Kulay ng background = ".$settings["background-color"]; echo "Text color = ".$settings["text-color"];

Sa JSON format, maaari mo ring, halimbawa, itala sa database kung aling mga opsyon sa produkto ang pinili ng mamimili.

("15":["45","47"], "18":"52") // ang opsyon 15 ay may mga value na 45 at 47 na napili, at ang opsyon 18 ay may napiling value na 52

Sa prinsipyo, maaari mo ring isulat ang buong nilalaman ng cart sa JSON na format, halimbawa, tulad nito:

( "user_id" : 10, "session_id" : "2c2l3h4ii271aojentejtdcmh3", "products": [ ( "product_id" : 15, "options" : ( "15" : , "18" : 52), "quantity" : 1, "price" : 1500 ), ( "product_id" : 16, "options" : ( "15" : , "18" : 51 ), "quantity" : 2, "price" : 1000 ) ] )

Sa karaniwan nitong hindi punong anyo, ang JSON string na ito ay magiging ganito:

("user_id":10,"session_id":"2c2l3h4ii271aojentejtdcmh3","products":[("product_id":15,"options":("15":,"18":52),,"quantity":1 , "price":1500),("product_id":16,"options":("15":,"18":51),,"quantity":2,"price":1000)])

Kaya, tulad ng makikita mula sa mga halimbawa, halos anumang impormasyon ay maaaring maimbak at maipadala sa format na JSON.

Marami akong nakuhang impormasyon dito kaya gusto kong i-post ang natuklasan kong solusyon.

Problema: Pagtanggap ng data ng JSON mula sa Javascript sa browser, sa server at paggamit ng PHP upang matagumpay na mai-parse ito.

Miyerkules: Javascript sa browser (Firefox) sa Windows. LAMP server bilang remote server: PHP 5.3.2 sa Ubuntu.

Ano ang gumagana (bersyon 1):
1) JSON ay text lang. Text sa isang partikular na format, ngunit isang text string lang.

2) Sa Javascript, binibigyan ako ng var str_json = JSON.stringify(myObject) ng JSON string.

3) Gumagamit ako ng AJAX XMLHttpRequest object sa Javascript upang magpadala ng data sa server:
kahilingan= bagong XMLHttpRequest()
request.open("POST", "JSON_Handler.php", true)
request.setRequestHeader("Content-type", "application/json")
request.send(str_json)
[... code upang ipakita ang tugon ...]

4) Sa server PHP code para basahin ang JSON string:
$str_json = file_get_contents("php://input");
Binabasa nito ang hilaw na data ng POST. Ang $str_json ay naglalaman na ngayon ng eksaktong JSON string mula sa browser.

Ano ang gumagana (bersyon 2):
1) Kung gusto kong gamitin ang "application/x-www-form-urlencoded" na header ng kahilingan, kailangan kong gumawa ng karaniwang POST string na "x=y&a=b" para kapag natanggap ito ng PHP, mailagay ito sa $_POST associative array. Kaya, sa Javascript sa browser:

Var str_json = "json_string=" + (JSON.stringify(myObject))

Ngayon ay mapupunan ng PHP ang $_POST array kapag nagpadala ako ng str_json sa pamamagitan ng AJAX/XMLHttpRequest tulad ng sa bersyon 1 sa itaas.

Ang pagpapakita ng mga nilalaman ng $_POST["json_string"] ay magpapakita ng JSON string. Ang paggamit ng json_decode() sa isang $_POST array element na may json string ay magde-decode ng data na iyon nang tama at ilagay ito sa isang array/object.

Ang pitfall na naranasan ko:
Una kong sinubukang magpadala ng string ng JSON na may header ng application /x -www-form-urlencoded at pagkatapos ay sinubukan kong basahin agad ito mula sa $_POST array sa PHP. Ang $_POST array ay palaging walang laman. Ito ay dahil inaasahan nito ang data ng form na yval = xval & . Wala itong nakitang ganoong data, isang JSON string lang, at itinapon lang ito. Tiningnan ko ang mga header ng kahilingan at naipadala nang tama ang data ng POST.

Gayundin, kung gagamitin ko ang application/json header, muli kong hindi ma-access ang data na ipinapadala sa pamamagitan ng $_POST array. Kung gusto mong gamitin ang application/json content header, dapat mong i-access ang raw POST data sa PHP sa pamamagitan ng php:// input kaysa sa $_POST.

Panitikan:
1) Paano ma-access ang data ng POST sa PHP: Paano ma-access ang data ng POST sa PHP?
2) Mga detalye ng uri ng application/json na may ilang halimbawa ng mga bagay na maaaring i-convert sa mga string ng JSON at ipadala sa server:

Paano magpadala sa Ajax ng isang listahan ng mga bagay (List) sa JSON na format

Halimbawa 1

$(dokumento).ready(function () ($("body").on("click", "button", function () ( var product = JSON.stringify(( "Pangalan": $("textarea") .val(), "Cost": $("input").val(), )); console.log(product); $.ajax(( url: "/Products/AjaxCreate/", paraan: "POST" , contentType: "application/json", data: product, success: function (response) ( console.log(response); ) ));

Controller

Public ActionResult AjaxCreate(Produkto ng produkto)( ibalik ang Json(bago ( resulta = "tagumpay"), JsonRequestBehavior.AllowGet); )

Halimbawa 2

//Sine-save ang invoice$("body").on("click", "button", function () ( //Ipunin ang talahanayan bilang isang hanay ng mga bagay var billDetails = ; $(".item").bawat(function () ( var name = $(this).find(".name").val(); //Pangalan var quantity = parseInt($(this).find(" .quantity").val()); //Dami var price = parseFloat($(this).find(".price").val());//Price var summ = parseFloat($(this).find (".item-summ").attr("value"));//Sum var productId = parseFloat($(this).find(".item-id").attr("value"));// Product Id var productSkuId = parseInt($(this).find(".item-sku-id").attr("value")); //Id ng Product Trade Offer var notRec = $(this).find(".item-not-rec").prop("checked"); //Isaalang-alang ang produkto o hindi billDetails.push(( Pangalan: pangalan, Dami: dami, Presyo: presyo, Summ: summ, ProductId: productId, ProductSkuId: productSkuId, NotRec: notRec )); )); console.log(billDetails); billDetails = JSON.stringify(( "billDetails": billDetails )); // Lumiko sa Statham //Ipadala para makatipid$.ajax(( url: "/Bills/AjaxSaveInvoiceBill/", paraan: "POST", contentType: "application/json", data: billDetails, tagumpay: function (response) ( window.location.replace("/Bills/ Listahan/"); ))); ibalik ang mali; ));

Controller

Public ActionResult AjaxSaveInvoiceBill(Listahan billDetails)( if (billDetails.Count == 0) return Json(new ( result = "error", message = "There are no goods in the invoice"), JsonRequestBehavior.AllowGet); //Gumawa ng bagong invoice at kunin ang ID nito mahabang billId = Bill.CreateBill(BillTypes.Invoice); //Ngayon, i-save natin ang bawat posisyon sa ilalim ng ID ng bagong invoice BillDetail.SaveBillDetails(billDetails, billId); return Json(new ( result="success", message="Invoice made successfully" ), JsonRequestBehavior.AllowGet); )

Ang kahilingan ng Ajax sa controller at pagtanggap ng tugon ni Json

$(dokumento).ready(function () ($.ajax(( url: "/Suppliers/AjaxGetSuppliersList/", paraan: "GET", tagumpay: function (tugon) ( data = JSON.stringify(response.suppliers); var list = eval("(" + data + ")"); suggest_count = list.length kung (suggest_count > 0) ($(".supplier-select").empty(); //I-clear ang listahan ng mga elemento //idagdag ang resultang listahan ng mga elemento sa piliin$.each(response.suppliers, function (key, value) ($(".supplier-select").append(" "); }); } } }); });

Controller

Public ActionResult AjaxGetSuppliersList() ( Listahan ng mga supplier = Supplier.GetSuppliers(); ibalik ang Json(bago (mga supplier), JsonRequestBehavior.AllowGet); )