RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1234566
Accepted
Иван
Иван
Asked:2022-01-22 11:55:06 +0000 UTC2022-01-22 11:55:06 +0000 UTC 2022-01-22 11:55:06 +0000 UTC

如何通过 id 将 PHP 数据数组分解为多个数组,以便进一步将这样的数组转换为 JSON 字符串?

  • 772

我从数据库中得到一个包含支付数据的数组。需要选择特定的,形成JSON,并用JS替换结果,根据HTML表单中的输入分配数据。

我得到这样的数据:

while($row = $results->fetch_assoc()) {
    $payment_service = $row["payment_service"];

    if ($payment_service == 'PayPal'){
    $paypal_item_number = $row["id"];
    $paypal_amount = $row["amount"];
    $paypal_curr_code = $row["currency_code"];
    $validity = $row["validity"];
    $paypal_email = $row["paypal_email"];

    var_dump($row["id"]);
    var_dump($row);

    //echo json_encode($row);
    
  }
}

var_dump($row["id"]);结果:

string(2) "74"
string(2) "76"
string(2) "77"

var_dump($row);结果:

array(8) {
  ["id"]=>
  string(2) "74"
  ["amount"]=>
  string(2) "10"
  ["currency_code"]=>
  string(3) "USD"
  ["validity"]=>
  string(2) "72"
  ["payment_service"]=>
  string(6) "PayPal"
  ["paypal_email"]=>
  string(16) "book@ya.ru"
  ["stripe_pkey"]=>
  string(0) ""
  ["status"]=>
  string(1) "1"
}
array(8) {
  ["id"]=>
  string(2) "76"
  ["amount"]=>
  string(3) "100"
  ["currency_code"]=>
  string(3) "RUB"
  ["validity"]=>
  string(1) "5"
  ["payment_service"]=>
  string(6) "PayPal"
  ["paypal_email"]=>
  string(16) "book@ya.ru"
  ["stripe_pkey"]=>
  string(0) ""
  ["status"]=>
  string(1) "1"
}...

进一步在表单中,使用 select 我选择所需的 id

<option value="74">USD 10</option>    
<option value="76">RUB 100</option>   
<option value="77">RUB 500</option>

更进一步的代码,使用 js 获取所选选择的值

var select = document.getElementById("PayPalAmount");

select.addEventListener("change", function(){  
    getValue = this.value;
    // выбранный select ($row["id"]) = getValue
    //alert( getValue );
}); 

现在我从 select 中获得了所需的 id,该 id 存储在getValue 中

如何在代码的以下部分输出 json:

var array = 

它应该是这样的:

var array = {cmd: '_xclick', business: 'book-facilitator@ya.ru', custom: '5'......};

即,如何在从数据库中获取数据的阶段,将数据通过 分布$row["id"],以便在选中后用特定的getValue ( $row["id"]) 的数据代入所需的变量?

例如像这样:

getValue = какие-то манипуляции для получения массива с данными на основе id лежащим в getValue;
$peremennay = json_encode($row['что-то']);
var array = <?php echo $peremennay; ?>

其中$peremennay;等于从接收到的数据数组形成的 json 字符串{cmd: '_xclick', business: 'book-facilitator@ya.ru', custom: '5'......}

此代码可以在一个 html 表单中更改大量数据,即 我们选择 select,json 将输入的数据排列在表单中,因此无需创建多个单独的表单。如果不使用 jquery,我没有找到更简单的解决方案。

整个代码:

while($row = $results->fetch_assoc()) {
$payment_service = $row["payment_service"];

if ($payment_service == 'PayPal'){
    $paypal_item_number = $row["id"];
    $paypal_amount = $row["amount"];
    $paypal_curr_code = $row["currency_code"];
    $validity = $row["validity"];
    $paypal_email = $row["paypal_email"];
    //var_dump($row);
    //echo json_encode($row);
    

  }
}

// Include paypal form
// include __DIR__ . '/forms/paypal.php';

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
                    <select id="PayPalAmount" required class="form-control">
                        <option value="">Choose Payment Service</option>
                        <option value="74">USD 10</option>    
                        <option value="76">RUB 100</option>   
                        <option value="77">RUB 500</option>
                    </select>
                    <div class="col-sm" id="select"></div>
                                        
    <div class="col-sm"> 
<button type="submit" name="submit" id="js-button">
    Buy Now With PayPal        
</button>          
    </div>  
</form>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<script>
var buyBtnPayPal = document.getElementById("js-button");

buyBtnPayPal.addEventListener("click", function (evt) {
    buyBtnPayPal.disabled = false;
    buyBtnPayPal.textContent = "Please wait...";
});
    
var select = document.getElementById("PayPalAmount");

select.addEventListener("change", function(){  
    getValue = this.value;
    // this в этом контексте - элемент, который запустил фукнцию. То же, что и select.value;
    //alert( getValue );
}); 

$('#js-button').click(function(){
    $('#select').empty();

    // ТА САМАЯ СТРОКА, ГДЕ НУЖНО ПОЛУЧИТЬ JSON С КОНКРЕТНЫМИ ДАННЫМИ
    var array = {cmd: '_xclick', business: 'book-facilitator@ya.ru', custom: '5'......};
    $.each(array, function(key, value) {
        $('#select').append('<input value="' + value + '" name="' + key + '">');
    }); 
});
</script>
javascript
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    Максим Степанов
    2022-01-22T19:40:11Z2022-01-22T19:40:11Z

    或者,您可以将整个数组php转换为一个对象js并使用它。

    为方便起见,可以将 php 数组放在另一个数组中,其中必要的 id 将是键:

    $services = [];
    while($row = $results->fetch_assoc()) {
        if ($row["payment_service"] == 'PayPal'){
            $services[$row["id"]] = $row;
        }
    }
    

    然后在js中获取:

    <script>
        // ...
        let getValue;
        // ...
    
        $('#js-button').click(function(){
            $('#select').empty();
    
            // ТА САМАЯ СТРОКА, ГДЕ НУЖНО ПОЛУЧИТЬ JSON С КОНКРЕТНЫМИ ДАННЫМИ
            let services = <?php echo json_encode($services); ?>;   // просто весь массив из php положить в объект js
            let array = services[getValue];     // и из него брать данные
    
            $.each(array, function(key, value) {
                $('#select').append('<input value="' + value + '" name="' + key + '">');
            });
        });
    </script>
    

    选项2:不要立即加载数组,而是在从列表中选择一个值时用ajax加载必要的数据。

    • 1

相关问题

  • 第二个 Instagram 按钮的 CSS 属性

  • 由于模糊,内容不可见

  • 弹出队列。消息显示不正确

  • 是否可以在 for 循环中插入提示?

  • 如何将 JSON 请求中的信息输出到数据表 Vuetify vue.js?

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    表格填充不起作用

    • 2 个回答
  • Marko Smith

    提示 50/50,有两个,其中一个是正确的

    • 1 个回答
  • Marko Smith

    在 PyQt5 中停止进程

    • 1 个回答
  • Marko Smith

    我的脚本不工作

    • 1 个回答
  • Marko Smith

    在文本文件中写入和读取列表

    • 2 个回答
  • Marko Smith

    如何像屏幕截图中那样并排排列这些块?

    • 1 个回答
  • Marko Smith

    确定文本文件中每一行的字符数

    • 2 个回答
  • Marko Smith

    将接口对象传递给 JAVA 构造函数

    • 1 个回答
  • Marko Smith

    正确更新数据库中的数据

    • 1 个回答
  • Marko Smith

    Python解析不是css

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5