簡體   English   中英

如何使用Laravel框架在javascript中發布到另一個php文件?

[英]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    
])

你可以找到這一切

https://laravel.com/docs/5.7/queries

https://laravel.com/docs/5.7/eloquent

雖然不推薦,但您可以將文件(code.php)放在公共文件夾中並使用它。

正確的方法是創建一個新的路由,創建一個新的控制器或操作,並嘗試在該控制器或操作中使用該代碼。 這樣你就不必使用mysql_query就可以使用eloquentDatabase Query Builder

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM