Как получить переменную из JavaScript в PHP

мне нужно передать переменную из 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 ??

узнайте больше о функции jquery ajax - данные, которые вы отправляете, должны быть объектом, а не простым значением

Kinglish 05.05.2022 21:53

Вы, вероятно, захотите отправить всю html-таблицу и сохранить ее в таблице базы данных, вы можете легко изучить эти основные операции (вставка/выбор/обновление/удаление) или операции CRUD. Приготовьте себе чашечку кофе, хороший туториал на YouTube, пару часов свободного времени и немного энтузиазма в программировании.

Yasser CHENIK 05.05.2022 21:58

о, нет, нет, я знаю, как (вставить/выбрать/обновить/удалить) прекрасно, мне просто нужно перенести одну переменную Js на другую страницу php....

Oumnia Rana SEGUENI 05.05.2022 22:01
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
3
82
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Попробуйте этот: (Редактировать, объяснение установить 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

Oumnia Rana SEGUENI 05.05.2022 22:54

Пожалуйста, объясните свой код, он бесполезен, когда вы просто публикуете Try this: [code]

ethry 05.05.2022 22:54

@OumniaRanaSEGUENI вы можете найти его в переменной $_POST в PHP. Думаю, это будет $_POST['x'].

ethry 05.05.2022 22:55

слишком лучший ответ, чем другой, ОДНАКО jQuery не нужен, вы можете использовать XMLHttpRequest или Fetch API, чтобы сделать это даже лучше, чем jQuery (избегая ада обратного вызова)

Mahdiar Mransouri 05.05.2022 23:10

как правильно объяснил @ethry, echo $_POST['x']; будет абсолютно работать, но попробуйте сохранить его в локальной переменной вместо SUPER GLOBAL $_POST, и прежде чем использовать его значение, я предлагаю вам проверить, правильно ли он был размещен на вашей странице с помощью if ( isset( $_POST['x] ) ) { /* Your Other Codes Based On x*/} , и вы можете пометить ответ как принятый, если он сработал и решил вашу проблему

Mahdiar Mransouri 05.05.2022 23:13

спасибо, @Kid и @MahdiarMransouri, я не знаю, как объяснить, что это работает и не работает... однажды я написал ``` echo $_POST['x']; ``` x действительно отображался, но только на странице сети (щелкните правой кнопкой мыши, затем проверьте сеть), там переменная отображается, но на try.php ее там нет !! то же самое для ``` if ( isset( $_POST['x] ) ) {}``` там ничего нет

Oumnia Rana SEGUENI 05.05.2022 23:21

@OumniaRanaSEGUENI try.php выполняется (отправляется) за пределами того, что вы видите на своей странице. Чтобы получить ответ на вашей странице, вам нужно использовать обработку успеха. Простое эхо не поможет. Сейчас я обновлю свой ответ, указав дополнительный фрагмент, уже поздно, мне нужно бросить курить.

Kip 05.05.2022 23:31

Вы неправильно отправляете свои данные с помощью 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
?>

Другие вопросы по теме