мне нужно передать переменную из js на php-страницу, а затем вставить ее в базу данных
JS-код
function tableText(tableCell) {
var x =tableCell.innerHTML;
console.info(x);
}
тоже пробовал аякс
function tableText(tableCell) {
var x =tableCell.innerHTML;
console.info(x);
$.ajax({
type: 'POST',
url: 'try.php',
data: x ,
complete: function(text){
return text; }
});
}
не уверен, правильно ли я понял, и я не знаю, как это вызвать на странице php
Итак, как получить переменную из JavaScript в PHP ??
Вы, вероятно, захотите отправить всю html-таблицу и сохранить ее в таблице базы данных, вы можете легко изучить эти основные операции (вставка/выбор/обновление/удаление) или операции CRUD. Приготовьте себе чашечку кофе, хороший туториал на YouTube, пару часов свободного времени и немного энтузиазма в программировании.
о, нет, нет, я знаю, как (вставить/выбрать/обновить/удалить) прекрасно, мне просто нужно перенести одну переменную Js на другую страницу php....
Попробуйте этот: (Редактировать, объяснение установить json)
function tableText(tableCell) {
var x =tableCell.innerHTML;
console.info(x);
$.ajax({
type: 'POST',
url: 'try.php',
dataType: "json",
data: { x:x },
complete: function(text){
return text; }
});
}
function tableText(tableCell) {
var x =tableCell.innerHTML;
console.info(x);
$.ajax({
type: 'POST',
url: 'try.php',
dataType: "json",
data: { x:x },
success : function(text){
$('#MyDiv').html(text);
}
});
}
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Вы можете получить $_POST['x']
как обычный пост.
Для возврат в php вам нужно использовать echo json_encode(['text'=>'ok']);
.
@ Малыш, спасибо, я думаю, что это сработало, но как мне повторить рассматриваемую переменную x ? извините, я только начинаю php и js
Пожалуйста, объясните свой код, он бесполезен, когда вы просто публикуете Try this: [code]
@OumniaRanaSEGUENI вы можете найти его в переменной $_POST в PHP. Думаю, это будет $_POST['x'].
слишком лучший ответ, чем другой, ОДНАКО jQuery не нужен, вы можете использовать XMLHttpRequest
или Fetch API
, чтобы сделать это даже лучше, чем jQuery (избегая ада обратного вызова)
как правильно объяснил @ethry, echo $_POST['x'];
будет абсолютно работать, но попробуйте сохранить его в локальной переменной вместо SUPER GLOBAL $_POST
, и прежде чем использовать его значение, я предлагаю вам проверить, правильно ли он был размещен на вашей странице с помощью if ( isset( $_POST['x] ) ) { /* Your Other Codes Based On x*/}
, и вы можете пометить ответ как принятый, если он сработал и решил вашу проблему
спасибо, @Kid и @MahdiarMransouri, я не знаю, как объяснить, что это работает и не работает... однажды я написал ``` echo $_POST['x']; ``` x действительно отображался, но только на странице сети (щелкните правой кнопкой мыши, затем проверьте сеть), там переменная отображается, но на try.php ее там нет !! то же самое для ``` if ( isset( $_POST['x] ) ) {}``` там ничего нет
@OumniaRanaSEGUENI try.php выполняется (отправляется) за пределами того, что вы видите на своей странице. Чтобы получить ответ на вашей странице, вам нужно использовать обработку успеха. Простое эхо не поможет. Сейчас я обновлю свой ответ, указав дополнительный фрагмент, уже поздно, мне нужно бросить курить.
Вы неправильно отправляете свои данные с помощью ajax, ваш ajax должен выглядеть так
Обновлено: добавьте сладкое предупреждение, чтобы отображать красивое сообщение после вставки.
function tableText(tableCell) {
var x =tableCell.innerHTML;
console.info(x);
$.ajax({
type: 'POST',
dataType: 'json',
url: 'try.php',
data: {
x:x
},
success: function(text) {
//SWAL
Swal.fire(
'Success!!',
text,
'success'
)
}
});
}
<!-- SWEET ALERT -->
<script src = "//cdn.jsdelivr.net/npm/sweetalert2@11"></script>
и в вашем файле try.php
<?php
$_REQUEST['x'];//here you receive what you send thru ajax
//here goes your insert
echo json_encode('insert was successfull')//this msg is what you will see when you return text
?>
узнайте больше о функции jquery ajax - данные, которые вы отправляете, должны быть объектом, а не простым значением