Как отправить переменную jQuery через ajax во внешний скрипт PHP SQL и вернуть значения - PullRequest
0 голосов
/ 03 октября 2019

Я пытаюсь передать переменную jQuery (var datastring), которая является строкой, через ajax во внешний файл drug_scripts.php, который выводит значение. Я могу заставить его работать, если я устанавливаю данные в числовое значение, однако, если я устанавливаю их в переменную, она возвращает NULL.

Я установил данные: ({dataSTring: dataString}) - возвращаетЗНАЧЕНИЕ NULL. Установочные данные: ({name: 123}) --- возвращает 123

AJAX:

 var dataString = '<?php print $DF_NAME1; ?>';

 $.ajax({
   url: "/wp-content/themes/Avada-Child-Theme/assets/php/drug_scripts.php",
   type:"POST",
   dataType: 'json',
   data:  ({dataString: 125}),
   success: function(data){
       console.log(data);
   }
  });

PHP:

$userInput = $_POST['dataString'];

echo $userInput;

Опять же, текущее состояние возвращает 123. Если вам нужно установить данные для данных: (dataString) возвращает NULL.

Ответы [ 3 ]

1 голос
/ 03 октября 2019

Я предполагаю, что $DF_NAME1 определяется как что-то вроде <?php $DF_NAME1 = 'name'; ?> (которое вы где-то получите, например, база данных)

Тогда:

<script>var dataString = "<?=$DF_NAME1?>";</script>
<script>
  $( document ).ready(function() {  
    var dataToSend = 'dataString=' + dataString;
     $.ajax({
       url: "/wp-content/themes/Avada-Child-Theme/assets/php/drug_scripts.php",
       type:"POST",
       dataType: 'json',
       data:  dataToSend,
       success: function(data){
           console.log(data);
       }
      });
  });
</script>

PHPфайл:

<?php
$userInput = $_POST['dataString'];
echo json_encode($userInput);
?>
0 голосов
/ 03 октября 2019

Попробуйте, это работает, поскольку я переписал код для вас.

В приведенном ниже сценарии вы можете видеть, что я просто предупреждаю переменную dataString , чтобы увидеть, имеет ли она какое-либо значение,если предупреждение пустое, это означает, что вы не передаете никакого значения в переменную строки данных.

Я также проверил его с переменной строкой данных, установленной на NancyMooree , которую я прокомментировал

<html><head>

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> 



<script>

$(document).ready(function(){
    //var dataString = 'NancyMoore';    
var dataString = '<?php echo $DF_NAME1; ?>';

// check that datastring has value in it by alerting it
alert(dataString);
var datasend = "dataString ="+ dataString ;

        $.ajax({

            type:'POST',
            url:'/wp-content/themes/Avada-Child-Theme/assets/php/drug_scripts.php',
            data:datasend,
                        crossDomain: true,
            cache:false,
            success:function(data){
                 console.log(data);

                $('#listresult').fadeIn('slow').prepend(data);

            }


        });


});
</script>
  </head>
    <body>
    <div id="listresult"> </div>
    </body>

</html>

php

<?php

$userInput = $_POST['dataString'];
echo $userInput;

?>
0 голосов
/ 03 октября 2019

Вам нужны оба ... имя атрибута и значение атрибута

   ....
  type:"POST",
  dataType: 'json',
  data:  ({attribute_name:'attribute_value'}),
  ....

в вашем случае

  ....
  type:"POST",
  dataType: 'json',
  data:  ({dataString : dataString }),
  ....

в $_POST['dataString'] вы должны получить содержимое переменной dataString

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...