如何通过ajax将jQuery变量发布到外部PHP SQL脚本并返回值

如何通过ajax将jQuery变量发布到外部PHP SQL脚本并返回值,php,ajax,Php,Ajax,我试图通过ajax将一个jQuery变量(var-datastring)即字符串传递给外部drug_scripts.php文件,该文件将返回该值。如果我将数据设置为数值,我可以让它工作,但是如果我将它设置为变量,它将返回NULL 我已经设置了数据:({dataSTring:dataSTring})——返回NULL。 设置数据:({name:123})--返回123 阿贾克斯: 同样,当前状态返回123。如果要将数据设置为data:(dataString),它将返回NULL。您需要这两个参数。。。

我试图通过ajax将一个jQuery变量(var-datastring)即字符串传递给外部drug_scripts.php文件,该文件将返回该值。如果我将数据设置为数值,我可以让它工作,但是如果我将它设置为变量,它将返回NULL

我已经设置了数据:({dataSTring:dataSTring})——返回NULL。 设置数据:({name:123})--返回123

阿贾克斯:


同样,当前状态返回123。如果要将数据设置为data:(dataString),它将返回NULL。

您需要这两个参数。。。属性名称和属性值

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

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

$\u POST['dataString']
中,您应该获得var
dataString

的内容,我将假定
$DF\u NAME1
被定义为类似
的内容(您将在某个地方得到,比如数据库)

然后:

var-dataString=“”;

$(文档).ready(函数(){
var dataToSend='dataString='+dataString;
$.ajax({
url:“/wp content/themes/Avada Child-Theme/assets/php/drug_scripts.php”,
类型:“POST”,
数据类型:“json”,
数据:dataToSend,
成功:功能(数据){
控制台日志(数据);
}
});
});
PHP文件:

<?php
$userInput = $_POST['dataString'];
echo json_encode($userInput);
?>

试试这个,因为我已经为您重写了代码

在下面的脚本中,您可以看到我只是提醒dataString变量看看它是否有任何值。如果警报为空,则表示未向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>

$(文档).ready(函数(){
//var数据字符串='Nancymore';
var数据字符串=“”;
//通过向datastring发出警报来检查它是否有值
警报(数据串);
var datasend=“dataString=“+dataString;
$.ajax({
类型:'POST',
url:“/wp content/themes/Avada Child-Theme/assets/php/drug_scripts.php”,
数据:datasend,
跨域:是的,
cache:false,
成功:功能(数据){
控制台日志(数据);
$('listresult').fadeIn('slow').prepend(数据);
}
});
});
php

<?php

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

?>


这是因为您需要同时发布键和值。您恰好对键和Javascript变量使用了相同的名称。@PatrickQ您能提供一些例子吗?我已将代码更改为data:({product:dataString}),并在PHP中设置了$_POST['product'];--这甚至不会返回NULL。删除括号,这应该可以很好地工作。另外,您的ajax请求需要JSON响应。因此,根据您要回显的值,很可能它不是有效的JSON。@PatrickQ它仍然没有返回任何内容。同样,这个AJAX数据:(dataString)和PHP$\u POST['dataString']返回NULL。很抱歉重复,我只是想尽量说清楚。我试图呼应的字符串的值是“佐韦拉-阿昔洛韦钠(通用)”
<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
$userInput = $_POST['dataString'];
echo json_encode($userInput);
?>
<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

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

?>