Я хочу передать значение из jquery в php с помощью AJAX, проблема в том, что значение в php неправильно установлено.
Вот мои примеры кодов:
Триггер кнопки для передачи данных в jquery.
<button class = "btn btn-info add-percentage"
data-landing_id-percentage = "'.$row['hidden_id'] .'"
data-toggle = "add-percentage"><i class = "glyphicon glyphicon-time"></i></button>
Ниже приведен код ajax и jquery.
<script>
$(".add-percentage").click(function(){
var landing_id = $(this).data('landing_id-percentage');
$.ajax({
url: 'ajax/readPercentage.php',
type: 'POST',
data: {
landing_id: landing_id
},
success: function(msg) {
alert('Email Sent'+msg);
$('#add-percentage').modal('show');
readRecords();
}
});
});
<script>
Результатом ниже в PHP-коде является неправильная установка landing_id.
readPercentage.php
<?php
$data = '
<table class = "table table-bordered table-hover table-striped" id = "ModalMyTable">
<thead>
<tr class = "success">
<th ><center>No.</center></th>
<th ><center>Percentage ID</center></th>
<th ><center>Landing ID</center></th>
<th><center>Percentage</center></th>
<th><center>Date Added</center></th>
</tr>
</thead>';
if (isset($_POST['landing_id'])){
$landing_id = $_POST['landing_id'];
$query = mysqli_query($conn, "SELECT
percentage.percent_id,
percentage.landing_id,
percentage.percentage,
percentage.date_recorded
FROM
percentage
WHERE percentage.landing_id = '$landing_id'");
$number = 1;
while($row = mysqli_fetch_assoc($query)) {
$data .= '
<tr>
<td><center>' . $number . '</center></td>
<td><center>' . $row['percent_id'] . '</center></td>
<td><center>' . $row['landing_id'] . '</center></td>
<td><center>' . $row['percentage'] . '%</center></td>
<td><center>' . date("M. d, Y", strtotime($row['date_recorded'])) . '</center></td>
</tr>';
$number++;
}
}else{
$data .='<tr><td colspan = "6">Landing id is not properly set!</td></tr>';
}
$data .= '</table>
<script>
{
$(document).ready(function(){
$("#ModalMyTable").DataTable();
readRecords();
});
}
</script>
';
echo $data;
?>
Я надеюсь, что кто-нибудь поможет мне в моей проблеме. Заранее спасибо.
@redreddington да, он вернет значение.
А если вы var_dump($_POST) раньше, чем if (isset(, содержит ли это значение?
Если это в форме, она будет отправлена. К нему можно добавить type = "button"
И если вы проверите кнопку, имеет ли она правильное значение в data-landing_id-percentage = "'.$row['hidden_id'] .'"
@mplungjan он имеет правильное значение, когда я предупреждаю об этом landing_id, он будет отображать .. и когда я повторяю Landing_id в php, он тоже будет отображаться.
@redreddington Неопределенный индекс: landing_id.
@UnusInstarOmnium и который появляется в окне консоли, когда вы выполняете POST, а не когда вы просто посещаете страницу?
@redreddington не появится, когда я просто нажму кнопку .. не при посещении страницы.
Я заметил, что при работе с некоторыми библиотеками JS, отправляющими HTTP POST, ваши данные попадают в php://input, а не в массив $_POST. Попробуйте $postData=file_get_contents("php://input");, и если вы получите строку, преобразуйте ее в объект или массив с помощью json_decode
@ivanivan я не могу получить строку ..
@mplungjan индекс сообщения не определен, но данные из ajax были успешно отправлены. Что я буду делать в своем коде, чтобы решить эту проблему.
Я не замечаю ничего очевидного. Извините






Если вы
console.info(landing_id)перед вызовом ajax, возвращает ли он значение?