如何在警报功能离子中应用删除?

时间:2019-04-23 03:50:16

标签: laravel ionic3 laragon

我已应用Laravel代码并测试了API以删除数据,并成功完成了

现在,我想将功能delete应用于ionic。如何将其应用于警报功能?

.ts文件

confirmdelete() {
  let alert = this.alertCtrl.create({
    title: 'Confirm Delete',
    message: 'Do you confirm to delete?',
    buttons: [
      {
        text: 'Cancel',
        role: 'cancel',
        handler: () => {
          console.log('Cancel clicked');
        }
      },
      {
        text: 'Yes',
        handler: () => {
          console.log('Yes clicked');
        }
      }
    ]
  });
  alert.present();
}

所以我在离子中进行删除时遇到问题。我认为在yes处理程序中需要包含什么内容?我仍然不确定。

api.php

public function deleteMed(Request $request)
{
    $id = $request->id;
    $medname = $request->medname;
    $price = $request->price;
    $stock = $request->stock;
    $medno = $request->medno;
    $ingredient = $request->ingredient;
    $description = $request->description;
    $addinfo = $request->addinfo;

    $user = AddMedicine::where('medno',  $request->input('medno'))->count();

    if($user!=0) {
        AddMedicine::where('id', $id)->delete([
            'id' =>$id,
            'medname'=>$medname,
            'price'=>$price,
            'stock'=>$stock,
            'medno'=>$medno,
            'ingredient'=>$ingredient,
            'description'=>$description,
            'addinfo'=>$addinfo,
        ]);

        $msg = "Data deleted";
        $datamsg = response()->json([
            'success' => $msg
        ]);

        return $datamsg->content();
    } else {
        echo'{"error":{"text":" Medicine does not exist"}}';
    }
}

2 个答案:

答案 0 :(得分:0)

如果我理解您的正确要求,则需要将HTTP请求发布到删除端点。

您是正确的,这应该在警报“是”处理程序中进行。

您将在其中放置以下内容:

this.http.post('url-of-your-delete-endpoint', {id: 123})
  .map(res => res.json())
  .subscribe(res => {
    // success
    console.log(res);
  }, err => {
    // error
    console.error(err);
  });

此示例使用的是Angular HttpClient

希望这可以给您一个开始。

Here是执行此类操作的另一本好指南。

答案 1 :(得分:0)

您现在所需要的就是对api端点的调用。您可以使用

  1. Angular's HTTPClient
  2. Ionic Native HTTP

您可以选择任何适合您的需求。 (我个人更喜欢Ionic Native HTTP来轻松解决CORS问题)

使用它们的一种方法是使用HTTP / HTTPClient在.ts文件中为api调用创建函数,例如(使用Ionic Native HTTP):

async deleteData(){

      let url = 'http://localhost/api/api-endpoint-url'

      let params = {}; // for request params

      await this.http.post(url, params, {}).then(response => {

        console.log('from server: ', response);

      })
      .catch(error => {

        console.log('error: ',error);

      });

  }

,然后在“是”处理程序中调用该函数:

confirmdelete() {
  let alert = this.alertCtrl.create({
    title: 'Confirm Delete',
    message: 'Do you confirm to delete?',
    buttons: [
      {
        text: 'Cancel',
        role: 'cancel',
        handler: () => {
          console.log('Cancel clicked');
        }
      },
      {
        text: 'Yes',
        handler: () => {
          console.log('Yes clicked');
          this.deleteData(); // call deleteData()
        }
      }
    ]
  });
  alert.present();
}