繁体   English   中英

PHP 如何从 AJAX 调用 POST 多个数组/json 值并在同一个 SQL 查询中运行它们?

[英]PHP how to POST multiple array/json values from AJAX call and run them in the same SQL query?

我想从选定的复选框中检索 id 并通过 AJAX 调用发送它们。 在我的 PHP 文件中,我将 id 放在删除查询中以从数据库中删除记录。 我怎样才能做到这一点? 我尝试了几件事,例如将其映射到数组或转换为 JSON,但我似乎无法让它工作。 在我的 PHP 中,我得到未定义或空的 arrays。

HTML:

<button href="" id="deletebutton" type="button"
                class=""
                disabled="">Delete
        </button>



<input type="checkbox" class="checkbox-clicks" id="" name="" value="1001">
<input type="checkbox" class="checkbox-clicks" id="" name="" value="1002">

JQuery:

$("#deletebutton").on("click", function() {
        var results = {}; // <== object
        var data = JSON.stringify(results);
 var checkedIds = $(".checkbox-clicks:checked").each(function() {
            results['id'] = this.value;
        });

  $.ajax({
            url:"testurl",
            type: "POST",
            data: data,
            success: function (result) {
                console.log('succesful delete');
            },
            error: function (xhr, status, error) {
                console.log('unsuccesful delete');
            }
        });
}

PHP:

$request = $_POST;

 $ids = json_decode($request);

        $req = $ids->id;


 $conditions = array(
            $db->quoteName('person_id') . " = " . $req,
        );

        $query->delete($db->quoteName('mydb'));
        $query->where($conditions);

如何将 id 1001 和 1002 作为条件放在同一个查询中?

您当前正在将原始页面中的数据(复选框中的值)通过 jQuery 传递到您的“testurl”页面。

相反,您可以从 $_POST 数据中直接在“testurl”PHP 页面上获取值。

在您的第一页上,请务必定义复选框名称,以便您可以在后端引用它们:

foreach($personid as $value) {
   echo '<input type="checkbox" name="personid[]" value= "'.$value.'">'.'<br>'; 
} 

您的侦听器页面的 PHP:

<?php

// Listen for post
if ( isset($_POST) ) {
    if(!empty($_POST['personid'])) {
        foreach($_POST['personid'] as $value){
            // Do your DB query here with condition looking at $value
        }
    }
} 
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM