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 查询中运行它们?的主要内容,如果未能解决你的问题,请参考以下文章
将数据从 javascript forEach 循环中的 php 数组发送到 ajax 调用的 url