将变量发送到PHP页面,然后在新标签页中打开页面 [英] Send a variable to a PHP page and open the page in new tab

查看:63
本文介绍了将变量发送到PHP页面,然后在新标签页中打开页面的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有此代码

$(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 page preview.php ,
You are not sending any data with post/get request while loading it using window.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 a form with hidden input having value my_data and set action="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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆