Ajax не может опубликовать переменную javascript в php - PullRequest
0 голосов
/ 28 февраля 2019

Я хочу опубликовать значения переменной JavaScript на странице PHP, а затем использовать эти значения там.

Я получаю новую HTML-страницу, чего я не хотел.Кроме того, он показывает сообщение об ошибке:

echo"some error";

Чего мне не хватает?Я не понимаю, почему это происходит?

Вот мой HTML-файл try.html

<html>
    <head>
        <title>try</title>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    </head>
    <body>
         <a id="button" href="try.php" target="_blank">send data</a>
         <script>
            var sum2= 2010;
            $('#button').click(function() {                 
                var val1=sum2;        
                $.ajax({
                    type: 'POST',
                    url: 'try.php',
                    data: { text: val1 },
                    dataType: 'script' // I am not sure about what I write here script,json,html?
                });
            });
        </script>
    </body>
</html>

А это мой PHP-файл try.php

<?php       
if(isset($_POST['text']))
{
    $text = $_POST['text'];
    echo $text;
}
else {
    echo"some error";
}
?>

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

В try.php, если вы видите что-то, что, в свою очередь, вернется в try.html.

Если вы просто хотите опубликовать данные в try.php и отобразить их, просто используйте форму и отправьте.Вам не нужен Ajax в этом.Ajax отправляет данные / получает обратно без перезагрузки существующей страницы.Ответ будет виден на самой текущей странице.

<html>
    <head>
        <title>try</title>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    </head>
    <body>
         <a id="button" href="try.php">send data</a>
         <script>
            var sum2= 2010;
            $('#button').click(function() {

                var val1=sum2;
                var json_params = { 
                    text: val1 
                    };
                var json_data = JSON.stringify(json_params);
                $.ajax({
                type: 'POST',
                url: 'try.php',
                data: json_data,
                dataType: "html",
                success: function(response)
                    {
                        alert(response);
                    }
                });
            });
        </script>
    </body>

</html>

На странице try.php вы можете разместить этот код

<?php  
if (isset($_POST)){
$data = json_decode(file_get_contents('php://input'));
print_r($data);
}    
else{
    echo "not set";
}
?>
0 голосов
/ 28 февраля 2019

Во-первых, удалите скрипт из типа данных.Вот как вы можете передать данные в php-файл:

$('#button').click(function() {

                var val1=sum2;

                $.ajax({
                type: 'POST',
                url: 'try.php',
                data: { text: val1 },
                });
            });

dataType - тип данных, которые вы ожидаете от сервера.Здесь вы ничего не хотите взамен, тогда все в порядке.Если вы ожидаете что-то вроде json или чего-то еще, вы можете указать это.

Если вы хотите получить что-либо в ответ, вы можете обработать таким образом $ ('# button'). Click (function (){

                var val1=sum2;

                $.ajax({
                type: 'POST',
                url: 'try.php',
                data: { text: val1 },
                });
               success: function (data) {
                 //Your success handler code
                },
            });

success - функция обратного вызова, выполняемая при успешном выполнении Ajax-запроса.

Сначала удалите href из ссылки. При этом он напрямую перенаправляет запрос на попытку.php

<a id="button" href="javascript:void(0);" target="_blank">send data</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...