[英]How to post to another php file in javascript when using Laravel framework?
我創建了一個多邊形制作器,用於創建某個區域的多邊形。 我想將多邊形的lat,lng和region名稱發布到另一個php文件,並從該文件向mysql插入數據。 以前我使用本機php創建類似的,它的工作原理。 但是當我嘗試在Laravel中這樣做時,它不起作用。 我只學了幾天Laravel,所以我對Laravel並不熟悉。
這是Javascript中的代碼:
var polycoords = '';
turf.flip(layer.toGeoJSON()).geometry.coordinates[0].forEach(function(item)
{
polycoords += item[0] + ',' + item[1] + "|";
});
function titikk(polycoords,kecamatan) {
$.ajaxSetup({async:false});
var returnData = null;
$.post("code.php", { polycoords: polycoords, kecamatan: kecamatan },
function(data) {
returnData = data;
});
$.ajaxSetup({async:true});
return returnData;
}
titiks = titikk(polycoords,kecamatan);
code.php
require_once("conn.php");
$x ="";
$y ="";
$polycoords = $_POST["polycoords"];
$kecamatan = $_POST["kecamatan"];
$pieces = explode("|", $polycoords);
for($i=0;$i<sizeof($pieces);$i++)
{
$data = array();
$data = explode(",", $pieces[$i]);
$x .= $data[0].",";
$y .= $data[1].",";
}
$x = substr($x,0,-2);
$y = substr($y,0,-2);
$input_kecamatan = mysqli_query($conn, "insert into `kecamatan` (`nama`,`lat`,`lng`)
values ('$kecamatan','$x','$y')");
我把code.php放在公共文件夾中。
在Laravel這樣做是對的嗎? 或者我需要在路線中使用帖子嗎? 任何人都可以建議如何使這項工作或其他方式仍然可以得到我想要的東西? 謝謝你的幫助
使用Laravel,您需要為post請求創建一個路由,理想情況下是一個包含code.php代碼的控制器。
Route::post('url-name/', 'CodeController@code')->name('route-name')
// or without controller
Route::post('url-name', function($request) {
// Code Here
return response()->json($response);
})
您可以在https://laravel.com/docs/5.7/routing#basic-routing上找到有關文檔的更多信息。
要將數據插入數據庫,您應該使用Eloquent或Query Builder。 Eloquent需要先創建模型。
// Eloquent
Kecamatan::create([
'lat' => $lat,
'long' => $long,
'nama' => $nama
])
// Query Builder
DB::table('kecamatan')->insert([
'lat' => $lat,
'long' => $long,
'nama' => $nama
])
你可以找到這一切
雖然不推薦,但您可以將文件(code.php)放在公共文件夾中並使用它。
正確的方法是創建一個新的路由,創建一個新的控制器或操作,並嘗試在該控制器或操作中使用該代碼。 這樣你就不必使用mysql_query就可以使用eloquent或Database Query Builder 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.