gpt4 book ai didi

php - 在 CodeIgniter 中从 AJAX 捕获动态 POST 数据

转载 作者:行者123 更新时间:2023-11-29 11:26:56 24 4
gpt4 key购买 nike

我有一个表单,用于实时过滤放入 View 中的数据。我刚刚了解了 serialize(),据我了解,它获取所有表单数据并将其转换为一个字符串,我可以将其传递到我的 ajax 函数中的 data: 字段中。

所以我的表单在伪代码中设置如下:

<?php foreach (city that's returned from a distinct select statement): ?>
<?php echo form_checkbox('city-'.$i++, etc...) ?>

哪个渲染:

<input type="checkbox" id="city-1" name="city-1" class="filter city-filter">
<input type="checkbox" id="city-2" name="city-2" class="filter city-filter">
<input type="checkbox" id="city-3" name="city-3" class="filter city-filter">

目前我的模型有一个函数,旨在获取这些数据并动态构建 sql 语句,如下所示:

public function filter_assocaitions($cities, $class, $types)
{
$this-db->select()->from('Associations')->where('Deleted', 0);

if(isset($cities))
{
$this->db->where('City', any of the city or cities that get passed from ajax);
}
}

我对 CI 和 php 不太熟悉,无法让 ajax 连接到我的 Controller 来编写正确的选择函数。

因为当我的表中添加了具有新的不同城市名称的新记录时,将呈现更多输入。我可以使用序列化将所有这些整齐地包装在一起以传递给 ajax 吗?如果是的话,我如何在 CI 模型中使用它来使用数据动态构建一个 SQL 语句,其中包含基于检查的每个城市的一堆 WHERE 子句?

我还有其他类别的过滤器,例如需要包含在同一 SQL 语句中的类、类型。

如果这没有任何意义,我可以用更好的信息更新它。

更新:Ajax 代码

$("input.filter").change(function(){
var data = $("form#refine-associations").serialize();
$.ajax({
type: "post",
url: "<?php echo base_url('association/refine/'.$status) ?>",
cache: false,
data: data,
dataType: "json",
success: function(response){

},
error: function(){
alert('Error while request..');
}
});
});

最佳答案

我可能会更改城市复选框的名称,以将数据作为数组传递,并将城市 ID 存储为值:

<?php echo form_checkbox('cities[]',$i,etc...) ?>

HTML 结果:

<input type="checkbox" id="city-1" name="cities[]" value=1 class="filter city-filter">
<input type="checkbox" id="city-2" name="cities[]" value=2 class="filter city-filter">
<input type="checkbox" id="city-3" name="cities[]" value=3 class="filter city-filter">

然后在你的模型中:

foreach($cities as $city)
{
$this->db->or_where('City', $city);
}

粗略且凭内存 - 但这应该会让您非常接近。

关于php - 在 CodeIgniter 中从 AJAX 捕获动态 POST 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38064217/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com