当我在 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 on ajax function

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>

假标签.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 调用的数据选项中定义参数,而不是在 url 中定义参数。喜欢这个:

function viewData(){
$.ajax({
url: 'proseslabel.php',
method: 'GET',
data: {p:'view'}
}).done(function(data){
$('tbody').html(data);
tableData();
})
}

最新更新