php - 当我在 ajax 上同时使用 POST 进行下拉显示数据时,GET 功能不起作用
问题描述
所以我尝试使用 ajax 显示数据并按值过滤它...当我只显示所有数据但我想让显示数据按下拉值过滤时它就起作用了,它需要发布以获取下拉选择的值
然后,当我完成后,我可以让 POST 函数在控制台上运行,我得到的响应根本没有问题,但是查看数据的 get 函数不起作用,所以数据不会加载......
prepro.php 用于下拉功能(似乎完全没有问题)
<select id="data_latih">
<option value="" selected="selected">Pilih Dokumen keberapa</option>
<?php
$sql = "SELECT DISTINCT dokumen FROM dt_latih ";
$resultset = mysqli_query($connection, $sql) or die("database error:". mysqli_error($connection));
while( $rows = mysqli_fetch_assoc($resultset) ) {
?>
<option value="<?php echo $rows["dokumen"]; ?>"><?php echo $rows["dokumen"]; ?></option>
<?php } ?>
</select>
prepro.php 关于 ajax 函数
function viewData(){
$.ajax({
url: 'proseslabel.php?p=view',
method: 'GET'
}).done(function(data){
$('tbody').html(data)
tableData()
})
}
function tableData(){
$('#tabledit').Tabledit({
url: 'proseslabel.php',
eventType: 'dblclick',
editButton: true,
deleteButton: false,
hideIdentifier: false,
buttons: {
edit: {
class: 'btn btn-sm btn-warning',
html: '<span class="glyphicon glyphicon-pencil"></span> Edit',
action: 'edit'
},
save: {
class: 'btn btn-sm btn-success',
html: 'Save'
}
},
columns: {
identifier: [0, 'id_latih'],
editable: [[16, 'label', '{"1": "1", "2": "2", "3": "3", "4": "4", "5": "5", "6": "6"}']]
},
onSuccess: function(data, textStatus, jqXHR) {
viewData()
},
onFail: function(jqXHR, textStatus, errorThrown) {
console.log('onFail(jqXHR, textStatus, errorThrown)');
console.log(jqXHR);
console.log(textStatus);
console.log(errorThrown);
},
onAjax: function(action, serialize) {
console.log('onAjax(action, serialize)');
console.log(action);
console.log(serialize);
}
});
}
$("#data_latih").change(function() {
var id = $(this).find(":selected").val();
$.ajax({
url: 'proseslabel.php?p=view',
method:"POST",
data: {id:id},
dataType: "json",
cache: false,
success: function(data) {
console.log(data);
$('tbody').html(data);
viewData;
tableData();
}
});
});
</script>
proseslabel.php 用于显示数据
$page = isset($_GET['p'])? $_GET['p'] : '' ;
if($page=='view'){
if(isset($_POST["id"]))
{
$result = $mysqli->query("SELECT * FROM dt_latih ");
while($row = $result->fetch_assoc()){
?>
<tr>
<td><?php echo $row['id_latih'] ?></td>
<td><?php echo $row['kalimat'] ?></td>
<td><?php echo $row['x1'] ?></td>
<td><?php echo $row['x2'] ?></td>
<td><?php echo $row['x3'] ?></td>
<td><?php echo $row['x4'] ?></td>
<td><?php echo $row['x5'] ?></td>
<td><?php echo $row['x6'] ?></td>
<td><?php echo $row['x7'] ?></td>
<td><?php echo $row['x8'] ?></td>
<td><?php echo $row['x9'] ?></td>
<td><?php echo $row['x10'] ?></td>
<td><?php echo $row['x11'] ?></td>
<td><?php echo $row['x12'] ?></td>
<td><?php echo $row['x13'] ?></td>
<td><?php echo $row['x14'] ?></td>
<td><?php echo $row['label'] ?></td>
</tr>
<?php
}
}
} else{
// Basic example of PHP script to handle with jQuery-Tabledit plug-in.
// Note that is just an example. Should take precautions such as filtering the input data.
header('Content-Type: application/json');
$input = filter_input_array(INPUT_POST);
if ($input['action'] == 'edit') {
$mysqli->query("UPDATE dt_latih SET label='" . $input['label'] . "' WHERE id_latih='" . $input['id_latih'] . "'");
} else if ($input['action'] == 'delete') {
$mysqli->query("UPDATE tabledit SET deleted=1 WHERE id_latih='" . $input['id_latih'] . "'");
} else if ($input['action'] == 'restore') {
$mysqli->query("UPDATE tabledit SET deleted=0 WHERE id_latih='" . $input['id_latih'] . "'");
}
mysqli_close($mysqli);
echo json_encode($input);
}
数据只是不会加载,但在控制台检查元素中,我得到了我想要回显的所有值
解决方案
在您的viewData()
函数中,您应该在 AJAX 调用的 data 选项中而不是在 url 中定义参数。像这样:
function viewData(){
$.ajax({
url: 'proseslabel.php',
method: 'GET',
data: {p:'view'}
}).done(function(data){
$('tbody').html(data);
tableData();
})
}
推荐阅读
- javascript - Flask POST请求表单数据而不刷新页面
- python - Matplotlib:如何绘制两个具有相同 x/y 轴但一个沿 y 轴从另一个开始的条形图
- java - 为什么 vscode 无法识别导入的 org.junit?
- gradle - JaCoCo Gradle Kotlin DSL 从违规规则中排除文件
- google-apps-script - 谷歌表格,在一个单元格中设置多个超链接的脚本
- xml - 将 XML 导出到 ODK 聚合服务器的自定义表单生成器
- mysql - 有效地从一个表中删除与另一个表不匹配的行 [MySQL]
- reactjs - 在 useEffect Hook 中检索参数并将参数设置为获取请求中的参数
- python-3.x - 如何根据第二列值删除数据框中的重复项?
- c++ - 使用工具时如何查找未发生的段错误