我正在尝试将一个变量从javascript传递给php,但它似乎并没有起作用,我无法弄清楚原因。 我正在使用一个应该做三件事的函数:
任务一工作正如控制台日志所确认的那样
任务二不起作用。虽然我得到一个警告说"成功",但在test.php上,变量没有回显
任务三工作。
Javascript(位于index.php中):
function selectHandler(e) {
// Task 1 - create variable
var itemNum = data.getValue(chart.getSelection()[0].row, 0);
if (itemNum) {
console.log('Item num: ' + itemNum);
console.log('Type: ' + typeof(itemNum));
// Task 2 - send var to PHP
$.ajax({
type: 'POST',
url: 'test.php',
dataType: 'html',
data: {
'itemNum' : itemNum,
},
success: function(data) {
alert('success!');
}
});
// Task 3 - open test.php in current tab
window.location = 'test.php';
}
}
PHP(位于test.php中)
$item = $_POST['itemNum'];
echo "<h2>You selected item number: " . $item . ".</h2>";
感谢任何可以提供帮助的人!
答案 0 :(得分:1)
试试这个:
success: function(data) {
$("body").append(data);
alert('success!');
}
基本上,data
是您从PHP文件回显的响应。使用jQuery,您可以append()
对您的body元素进行html响应。
答案 1 :(得分:1)
据我所知,你不知道ajax用于什么,如果你从ajax调用重定向你不需要ajax
请参阅以下函数(无ajax):
function selectHandler(e) {
// Task 1 - create variable
var itemNum = data.getValue(chart.getSelection()[0].row, 0);
if (itemNum) {
console.log('Item num: ' + itemNum);
console.log('Type: ' + typeof(itemNum));
window.location = 'test.php?itemNum='+itemNum;
}
}
变化:
$item = $_GET['itemNum'];
echo "<h2>You selected item number: " . $item . ".</h2>";
或者更好的是,您可以从普通网页的表单中执行简单的帖子请求:)
答案 2 :(得分:0)
你应该改变这段代码
export function service(target: Object, propertyKey: string | symbol, parameterIndex: number, name:string) {
target['name'] = name;
}
到这个
'itemNum' : itemNum,
答案 3 :(得分:0)
似乎缺少contentType
,看看是否有帮助:
$.ajax({
type: 'POST',
url: 'test.php',
dataType: "json",
data: {
'itemNum' : itemNum,
},
contentType: "application/json",
success: function (response) {
alert(response);
},
error: function (error) {
alert(error);
}
});
答案 4 :(得分:0)
你可以通过html中的隐藏变量轻松地将数据传递给php,例如我们的html页面包含一个隐藏变量,其中包含一个像这样的唯一ID ..
<input type="hidden" id="hidden1" value="" name="hidden1" />
在我们的javascript文件中包含像这样的ajax请求
$.ajax({
type: 'POST',
url: 'test.php',
data: {
'itemNum' : itemNum,
}
success: function (data) {
// On success we assign data to hidden variable with id "hidden1" like this
$('#hidden1').val(data);
},
error: function (error) {
alert(error);
}
});
然后我们可以在表单提交或使用javascript
访问该值eighter通过Javascript(Jquery)访问
var data=$('#hidden1').val();
通过表单提交(POST METHOD)访问就像这样
<?php
$data=$_POST['hidden1'];
// remaining code goes here
?>