Когда я пытаюсь переслать значение $ _post через jquery в php-скрипт, я получаю это уведомление: "Уведомление PHP: неопределенный индекс: id"
Я вижу значение id в инструментах разработчика, например. : 'id: 8519/8520/8521/8522' но на сайте сценарий останавливается на позиции $ _POST ['id'].
вот часть кода:
<button class = "btn btn-danger" id = "export">export xls</button>
<form action = "baza_site.php" method = "POST">
<input type = "text" class = "form-control" placeholder = "Search" name = "search">
<button class = "btn btn-default" type = "submit" name = "submit" >
<i class = "glyphicon glyphicon-search"></i>
</button>
</div>
</div>
</form>
<?php
require_once 'config.php';
$output = '';
$page = isset($_GET['p'])? $_GET['p'] : '';
if ($page == 'xls'){
$myid = $_POST['id'];
$id = str_replace(' ', ',', $myid);
$sql = "SELECT * FROM baza_site WHERE id IN($id)";
if ($result = $mysqli->query($sql)){
if ($result->num_rows > 0)
{
$output .= '
<table border = "1">
<tr>
<th>id</th>
<th>site</th>
<th>location type</th>
<th>city</th>
<th>address</th>
<th>access details</th>
<th>service area</th>
</tr>
';
while($row = mysqli_fetch_array($result))
{
$output .= '
<tr>
<td>'.$row["id"].'</td>
<td>'.$row["site"].'</td>
<td>'.$row["locationType"].'</td>
<td>'.$row["city"].'</td>
<td>'.$row["address"].'</td>
<td>'.$row["accessDetails"].'</td>
<td>'.$row["ServiceArea"].'</td>
</tr>
';
}
$output .= '</table>';
header('Content-Type: application/vnd.ms-excel');
header("Content-Disposition: attachment; filename = ".'woclosed'.date("Y-m-d_H_i_s").".xls");
header("Pragma: no-cache");
header("Expires: 0");
echo $output;
}
}}
require_once 'config.php';
if (isset($_POST["submit"])) {
$search = mysqli_real_escape_string($mysqli, trim($_POST['search']));
mysqli_set_charset( $mysqli, 'utf8');
$sql = "SELECT * FROM baza_site WHERE site LIKE '%$search%' OR city LIKE '%$search%' OR address LIKE '%$search%' OR accessDetails LIKE '%$search%' OR ServiceArea LIKE '%$search%' OR locationType LIKE '%$search%'";
if ($result = $mysqli->query($sql)){
if ($result->num_rows > 0){
$ilosc = mysqli_num_rows($result);
echo "<b>ilość rekordów : " .$ilosc."</b>";
echo "<table id='myTable' class='tablesorter-blackice'>";
echo "<thead>";
echo "<tr>";
echo "<th style='text-align:center;' class='filter-false'><input type='checkbox' id='checkall'/></th>";
echo "<th>site</th>";
echo "<th>location type</th>";
echo "<th>city</th>";
echo "<th>address</th>";
echo "<th>access details</th>";
echo "<th>service area</th>";
echo "</tr>";
echo "</thead>";
echo "<tbody>";
while($row = $result->fetch_array()){
echo "<tr>";
echo "<td class='text-center'>"."<input type='checkbox' name='checkboxlist' class='checkitem' value = ". $row['id']."/> </td>";
echo "<td>" . $row['site']. "</td>";
echo "<td>" . $row['locationType']. "</td>";
echo "<td>" . $row['city'] . "</td>";
echo "<td>" . $row['address'] . "</td>";
echo "<td>" . $row['accessDetails'] . "</td>";
echo "<td>" . $row['ServiceArea'] . "</td>";
echo "</tr>";
}
echo "</tbody>";
echo "</table>";
// Free result set
$result->free();
} else{
echo "<p class='lead'><em>Brak informacji w bazie.</em></p>";
}
} else{
echo "ERROR: Could not able to execute $sql. " . $mysqli->error;
}
}
// Close connection
$mysqli->close();
?>
</div>
</div>
<script type = "text/javascript">
$("#myTable").tablesorter({
headers: {
0: { sorter: false, parser: false }
}
});
<script type = "text/javascript">
$('#checkall').change(function(){
$('.checkitem').prop("checked", $(this).prop("checked"))
})
$('#export').click(function(){
var id = $('.checkitem:checked').map(function(){
return $(this).val()
}).get().join(' ')
$.post('baza_site.php?p=xls', {id : id})
});
</script>
Проблема не так очевидна? Вы должны определить переменную с именем $id. Тип $id=''; поверх переменной $output.






Глядя на ваш код, мы замечаем, что нет поля ввода с именем id.
правильный формат для работы со значениями формы: $ _ POST ['inputname']
В результате вы обнаружите, что id не определен.
Предполагая, что вы хотите обработать результаты поиска, вы можете вместо этого использовать $ _POST ['search'], поскольку именно так вы назвали свое поле.
Надеюсь, это поможет тебе
Пожалуйста, дайте рабочий код как можно короче. Пожалуйста, обратитесь к здесь