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

Posted

技术标签:

【中文标题】PHP 如何从 AJAX 调用中发布多个数组/json 值并在同一个 SQL 查询中运行它们?【英文标题】:PHP how to POST multiple array/json values from AJAX call and run them in the same SQL query? 【发布时间】:2022-01-12 23:11:31 【问题描述】:

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

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 作为条件放在同一个查询中?

【问题讨论】:

【参考方案1】:

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

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

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

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
        
    
 
?>

【讨论】:

以上是关于PHP 如何从 AJAX 调用中发布多个数组/json 值并在同一个 SQL 查询中运行它们?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 AJAX/JQuery 调用多个 PHP 脚本?

将数据从 javascript forEach 循环中的 php 数组发送到 ajax 调用的 url

通过ajax调用从php文件中接收多个值

PHP如何调用JS函数并获取其返回的数据?

如何通过 ajax php 调用返回包含 json 对象的数组/json 对象?

如何将 json 编码的 PHP 数组转换为 Javascript 中的数组? [复制]