如何通过ajax将jQuery变量发布到外部PHP SQL脚本并返回值
我试图通过ajax将一个jQuery变量(var-datastring)即字符串传递给外部drug_scripts.php文件,该文件将返回该值。如果我将数据设置为数值,我可以让它工作,但是如果我将它设置为变量,它将返回NULL 我已经设置了数据:({dataSTring:dataSTring})——返回NULL。 设置数据:({name:123})--返回123 阿贾克斯:如何通过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。您需要这两个参数。。。
同样,当前状态返回123。如果要将数据设置为data:(dataString),它将返回NULL。您需要这两个参数。。。属性名称和属性值
....
type:"POST",
dataType: 'json',
data: ({attribute_name:'attribute_value'}),
....
就你而言
....
type:"POST",
dataType: 'json',
data: ({dataString : dataString }),
....
在
$\u POST['dataString']
中,您应该获得vardataString的内容,我将假定$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;
?>