将变量发送到PHP页面,然后在新标签页中打开页面 [英] Send a variable to a PHP page and open the page in new tab
问题描述
我有此代码
$(document).on('click', '#button', function(){
var my_data = 'Test Test Tes';
$.ajax({
type: "POST",
url: "preview.php",
data: "my_data=" + my_data,
success: function() {
window.open('preview.php');
},
});
});
以上代码打开 preview.php
,但出现此错误-
Above codes open the preview.php
but I'm getting this error -
注意:未定义的索引:my_data在第3行上的C:\ xampp \ htdocs \ tb-builder \ preview.php
Notice: Undefined index: my_data in C:\xampp\htdocs\tb-builder\preview.php on line 3
这就是我在 preview.php
-
<?php
$data= $_POST['my_data'];
echo $data;
?>
有人可以帮我解决这个问题吗?谢谢
Can anybody help me to solve this please? Thanks
推荐答案
主要错误是,
window.open('preview.php');
加载页面preview.php
,
使用post/get
请求发送数据时,您没有发送任何数据window.open('preview.php');
,您期望的值是$ _ POST ['my_data']
Main error is ,
window.open('preview.php');
loads the pagepreview.php
,
You are not sending any data withpost/get
request while loading it usingwindow.open('preview.php');
and you are expecting value at$_POST['my_data']
$(document).on('click', '#button', function(){
var my_data = 'Test Test Tes';
$.ajax({
type: "POST",
url: "preview.php",
data: "my_data=" + my_data,
});
});
preview.php
<?php
if(isset($_POST['my_data']){
$data= $_POST['my_data'];
header('location:preview.php?my_data=$data'); //reload preview.php with the `my_data`
}
if(isset($_GET['my_data'])){
$data=$_GET['my_data'];
echo $data; //display `my_data` as you requested
}
?>
更新
无需使用ajax即可实现所需的功能.
With out using ajax ,to achieve what you required.
$(document).on('click', '#button', function(){
var my_data = 'Test Test Tes';
window.open('preview.php?my_data='+my_data);
});
preview.php
<?php
if(isset($_GET['my_data'])){
$data=$_GET['my_data'];
echo $data;
}
?>
最终更新
实际上,您根本不需要
ajax
,因为您将转到包含数据的另一页.
Actually you don't need
ajax
at all , because you are going to another page with the data .
避免获取
请求
to avoid get
request
将
按钮
包裹在form
内,其中隐藏的input
具有值my_data
并设置action ="preview.php"
如下所示
Wrap the
button
inside aform
with hiddeninput
having valuemy_data
and setaction="preview.php"
like below
<form action="preview.php" method="post">
<input type="hidden" id="my_data" value="Test Test Tes">
<button type="submit" id="button">post</button>
</form>
这篇关于将变量发送到PHP页面,然后在新标签页中打开页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!