Я пытался интегрировать jQuery.Tabledit (https://markcell.github.io/jquery-tabledit/) в мою таблицу. Хотя это работало для одной таблицы, другая не работала. После долгих испытаний я обнаружил что-то странное при изменении URL.
Базовая структура моей таблицы:
index.php
<script type="text/javascript" src="tabledit.js"></script>
<table id="testing">
<thead>
<tr id="head">
<th>id</th>
<th>Column 1</th>
<th>Column 2</th>
</tr>
</thead>
<tbody>
<tr id="1">
<th>1</th>
<td>a</td>
<td>b</td>
</tr>
<tr id="2">
<th>2</th>
<td>c</td>
<td>d</td>
</tr>
</tbody>
</table>
<?php var_dump($_SESSION); ?>
tabledit.js
$(document).ready(function(){
$('#testing').Tabledit({
columns: {
identifier: [0, 'id'],
editable: [[1, 'Column 1'], [2, 'Column 2']]
},
onSuccess: function(data, textStatus, jqXHR) {
console.log('Success');
},
onFail: function(jqXHR, textStatus, errorThrown) {
console.log('Fail');
},
onAjax: function(action, serialize) {
console.log('onAjax');
console.log(action);
console.log(serialize);
},
hideIdentifier: false,
url: '../../database/test.php',
});
});
test.php
<?php
session_start();
$_SESSION['test'] = 'heya';
?>
Теперь, если я поставлю файл test.php рядом с tabledit.js и измените код URL на
url: 'test.php',
, переменная сеанса не изменится, что означает, что test.php вообще не работает.
Если я поставлюв одну папку выше tabledit.js (например: project / table / tabledit.js и project / test.php ) и измените код URL на
url: '../test.php',
, он тоже не будет работать. Однако, если я поставлю его на 2 папки выше, например:
url: '../../test.php',
, он будет работать. То же самое происходит с
url: '../../database/test.php',
Я потянул на это всю ночь и до сих пор не могу понять, почему. ценится.