我想将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";
}
?>
答案 0 :(得分:0)
首先,从数据类型中删除脚本。 这是将数据传递到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
},
});
成功-在Ajax请求时执行的回调函数 成功。
首先从链接中删除href。通过这种方式,它可以直接重定向到try.php
<a id="button" href="javascript:void(0);" target="_blank">send data</a>
答案 1 :(得分:0)
在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";
}
?>