首页 > 解决方案 > 我们如何使用 mysqli 将包含来自 xml http 请求的文本的数组发送到 PHP?

问题描述

这是准备我的数组的代码,它将作为参数发送给处理我的 HTTP 请求的函数。

for (var i in the_texts) {
    if (the_texts[i]._status == "new") {
      var instance_texts_object = {};
      instance_texts_object._id = parseInt(the_texts[i]._id);
      instance_texts_object._data = encodeURIComponent(the_texts[i]._data);
      instance_texts_array.push(instance_texts_object);
    }
  } 
  the_texts.update_backend_text_instances_ajax(instance_texts_array);

我的 instance_texts_array 记录的示例如下所示:4: {_id: 3193, _data: "Click%20Me!"}

我的 Ajax 函数如下所示:

update_backend_text_instances_ajax: function(texts_array_) {
    texts_array_ = JSON.stringify(texts_array_);
    var file_address = "includes/update_backend_texts_intances.php";
    var xhttp_request = new XMLHttpRequest();
    xhttp_request.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
        var response = this.responseText;
        document.getElementById('test_xml').innerHTML += "<br>" + "texts" + response;
      };
    };
    xhttp_request.open("POST", file_address + "?text_array=" + texts_array_, false);
    xhttp_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhttp_request.send();
  }

我正在使用 POST 方法。

我的 PHP 脚本如下所示:

<?php
include_once 'database.php';
$text_array = $_REQUEST["text_array"];
$text_array_entry =  json_decode($text_array, true);
foreach($text_array_entry as $row) {
  $statement = mysqli_query($connect,"INSERT INTO the_texts (id, user_id, data) VALUES('".$row['_id']."', 600, '".$row['_data']."');");
};
echo print_r($text_array_entry);

 ?>

我认为我的问题是我的 PHP 脚本没有收到我的text_array变量。免责声明:$connect来自include_once 'database.php'

标签: javascriptphpajaxxmlhttprequest

解决方案


推荐阅读