如何使用具有相同键但多个值的http post将数据发送到php文件api?

我想使用 http POST 将具有相同密钥的多个值从 flutter/dart 发送到 php api。但我不知道该怎么做。我这几天一直在寻找,但仍然找不到答案。我脑子里的想法是这样的:


    void changeStatus(){

      var url = "http://url";

      http.post(url, body: json.encode({

        "id": ["31","32"]

      }));

    }

在 php 文件中看起来像这样:


$id = array();

    for( $i=0 ; $i < count($_POST['id']) ; $i++ )

    {

        $id[$i]['id'] = $_POST['id'][$i];


    }


    for( $i=0 ; $i < count($_POST['id']) ; $i++ )

    {

        $queryResult = $connect->query("UPDATE someTable SET someField = 'yes' WHERE idField ($id[$i]['id'])");


    } 

上面的代码正是我想象的,因为我不知道代码中应该如何实现。因此,如果有人了解如何做到这一点,那将会非常有帮助


慕婉清6462132
浏览 145回答 2
2回答

慕田峪7331174

终于我能弄清楚了。我不知道这是否是最好的解决方案,但对我来说它有效。我只需要像这样循环 http.post :void changeStatus(){&nbsp; &nbsp; List listId = ["31","32"];&nbsp; &nbsp; var url = "http://url";&nbsp; &nbsp; for (var i = 0; i < listId.length; i++) {&nbsp; &nbsp; http.post(url, body: {&nbsp; &nbsp; &nbsp; &nbsp; "id": listId[i],&nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; }&nbsp; }然后在php文件中就像这样:$id = $_POST['id'];$queryResult = $connect->query("UPDATE someTable SET someField = 'yes' WHERE idField = '".$id."' ");

PIPIONE

您可以使用 ajax 调用将这些 id 传递到 PHP 页面,其中您的 id 需要执行查询操作。<script>&nbsp; &nbsp; &nbsp; function changeStatus(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var url = "http://localhost/update.php";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $.ajax({&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; type: "POST",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; url: url,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dataType: 'json',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; data: {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; id: ["31","32"],&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; success: function(response) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log(response);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //here you can get response if you send from php-end&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; error: function(xhr) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //do something on error&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; complete: function(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //do something on complete&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; </script>现在在update.php文件中&nbsp; &nbsp; $ids = isset($_POST['id']) ? $_POST['id'] : [];&nbsp; &nbsp; foreach( $ids as $id )&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; $queryResult = $connect->query("UPDATE someTable SET someField = 'yes' WHERE idField $id");&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP