首页 > 解决方案 > 使用 Laravel 框架时如何在 javascript 中发布到另一个 php 文件?

问题描述

我创建了一个多边形制作器,用于创建某个区域的多边形。我想将多边形的 lat、lng 和区域名称发布到另一个 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);

代码.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 中这样做是否正确?还是我需要在路线中使用帖子?任何人都可以建议如何使这项工作或其他方式仍然可以得到我想要的吗?感谢您的帮助

标签: javascriptphplaravel

解决方案


使用 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


推荐阅读