【问题标题】:I am trying to pass some PHP variables and Javascript variable into url in Javascript window.location.href我正在尝试将一些 PHP 变量和 Javascript 变量传递到 Javascript window.location.href 中的 url
【发布时间】:2021-12-06 08:25:32
【问题描述】:

我正在尝试将一些 PHP 变量和“引用”的 Javascript 变量名称传递到 Javascript 中的 URL。以下是运行良好的 PHP 变量

//Collect user's data
$amt = $_GET['amount'];
$email = $_GET['email'];
$firstname = "bas";
$lastname = "aik";
<script>    
callback: function(response){
              const referenced = response.reference;
              window.location.href='successful.php?successfullypaid=referenced&email=<?php echo $email; ?>';
          },
<script?

我已将我的整个代码粘贴在下面供您查看。

    <?php
//sanitize form inputs
$sanitizer = filter_var_array($_POST, FILTER_SANITIZE_STRING);

//Collect user's data
$amt = $_GET['amount'];
$email = $_GET['email'];
$firstname = "bas";
$lastname = "aik";

//Make sure fields are not empty
//if(empty($amt)) {
//  header("Location: deposit.php");
//}else{


?>
                <div class="modal-body">
                    <p>Confirm Online payment to pay with paystack</p>
                    <form >
                        <script src="https://js.paystack.co/v1/inline.js"></script>
                        <button type="button" class="btn btn-success confirm-button" onclick="payWithPaystack()"> Confirm </button>
                        <a class="btn btn-danger" href="index.php"> Decline </a> 
                    </form>
                </div>
               <!-- <div class="modal-footer">
                    
                    <a href="index.php"> <button type="button" class="btn btn-primary">Go to Account</button></a>
                </div>-->
            </div>
        </div>
    </div>
</div>
<script>
  function payWithPaystack(){
    const api = "pk_test_71bd9a7489bee5e300594cabeac43344eed2ef5c";
    var handler = PaystackPop.setup({
      key: api,
      email: '<?php echo $email; ?>',
      amount: <?php echo $amt*100; ?>,
      currency: "NGN",
      ref: ''+Math.floor((Math.random() * 1000000000) + 1), // generates a pseudo-unique reference. Please replace with a reference you generated. Or remove the line entirely so our API will generate one for you
      /*firstname: <?php echo $firstname; ?>,
      lastname: <?php echo $lastname; ?>,*/
      metadata: {
         custom_fields: [
            {
                /*display_name: <?php echo $firstname; ?>,
                variable_name: <?php echo $lastname; ?>,
                value: "+2348012345678"*/
            }
         ]
      },
      callback: function(response){
          const referenced = response.reference;
          window.location.href='successful.php?successfullypaid=referenced&email=<?php echo $email; ?>';
      },
      onClose: function(){
          alert('window closed');
      }
    });
    handler.openIframe();
  }
</script>

我已经尝试了这个问题How can i pass multiple parameters in location.href in php? 的所有答案,但它们对我不起作用。

window.location.href='successful.php?successfullypaid=referenced&email=<?php echo $email; ?>';

这是唯一接近我想要的解决方案,PHP 变量工作正常,但 javascript 变量不起作用

【问题讨论】:

  • 你可以把它连接起来:'successful.php?successfullypaid=' + referenced + '&amp;...
  • 看起来您的实际问题归结为“如何在 JavaScript 中将变量插入字符串”这个琐碎的话题,而您可以自己轻松研究这个话题......跨度>
  • 不推荐使用常量FILTER_SANITIZE_STRING。请停止使用。

标签: javascript php


【解决方案1】:

试试这个,现在你只是制作一个字符串,与 PHP 不同,javascript 不允许你在字符串中传递变量。

window.location.href=`successful.php?successfullypaid=${referenced}&email=<?=$email; ?>`;

【讨论】:

  • 谢谢@naxsi,这对我有用。但我正在尝试添加更多 PHP 变量,例如 window.location.href=successful.php?successfullypaid=${referenced}&amp;email=&lt;?=$email; ?&gt;&amp;amount=&lt;?=$amount; ?&gt;;
  • 这不行吗?它应该可以工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-31
  • 1970-01-01
相关资源
最近更新 更多