Как отправить таблицу html в виде массива сериализации в базу данных? - PullRequest
0 голосов
/ 29 мая 2020

Я хочу отправить мою javascript и динамическую c таблицу в мою базу данных в виде текстовой переменной. Я объяснил все, что делал:

  1. Я использовал jquery для получения значений
  2. Затем я сохранил HTML значений таблицы в java массиве скриптов
  3. Я преобразовал javascript массив в JSON формат
  4. Я отправил JSON массив в php скрипт с помощью JQuery AJAX

Но я не Не знаете, как отправить его в базу данных?

Вот мой код:

function readTblValues() {
  var TableData = '';

  $('#tbTableValues').val(''); // clear textbox
  $('#tblDowntimes tr').each(function(row, tr) {
    TableData = TableData +
      $(tr).find('td:eq(1)').text() + ' ' // downtime
      +
      $(tr).find('td:eq(2)').text() + ' ' // equipment
      +
      $(tr).find('td:eq(3)').text() + ' ' // starttime
      +
      $(tr).find('td:eq(4)').text() + ' ' // finishtime
      +
      $(tr).find('td:eq(5)').text() + ' ' // descriptio
      +
      '\n';
  });
  $('#tbTableValues').html(TableData);
}

function storeAndShowTableValues() {
  var TableData;
  TableData = storeTblValues();
  $('#tbTableValuesArray').html('
JS Array:
' + print_r(TableData)); } function storeTblValues() { var TableData = new Array(); $('#tblDowntimes tr').each(function(row, tr) { TableData[row] = { "DOWNTIME": $(tr).find('td:eq(1)').text(), "equipment": $(tr).find('td:eq(2)').text(), "startdowntime": $(tr).find('td:eq(3)').text(), "finishdowntime": $(tr).find('td:eq(4)').text(), "description": $(tr).find('td:eq(5)').text() } }); TableData.shift(); // first row will be empty - so remove return TableData; } function convertArrayToJSON() { var TableData; TableData = $.toJSON(storeTblValues()); $('#tbConvertToJSON').html('
JSON array:
' + TableData.replace(/},/g, "},
")); } function sendTblDataToServer() { var TableData; TableData = $.toJSON(storeTblValues()); $('#tbSendTblDataToServer').val('JSON array to send to server:
' + TableData.replace(/},/g, "},
")); $.ajax({ type: "POST", url: "test.php", data: "pTableData=" + TableData, // post TableData to server script success: function(msg) { // return value stored in msg variable $('#tbServerResponse').html('Server Response:

' + msg + '
'); }}); } функция print_r (arr, level) {var dumped_text = ""; если (! level) level = 0; // Заполнение, указанное в начале строки. var level_padding = ""; для (var j = 0; j \" "+ значение +" \ "\ n"; }}} else {// Жало / Знаков / Чисел и т. д. c. dumped_text = "===>" + arr + "<=== (" + typeof (arr) + ")"; } return dumped_text; } </code>
<html>

<head>
</head>

<body>
  <form name="data-entry" method="post" action="data-entry.php">
    <input id="product-name" name="product-name" />
    <input id="product-quantity" name="product-quantity" />
    <input name="Downtime" id="Downtime" />
    <input name="equipment" id="equipment" />
    <input type='time' name='startdowntime' id='startdowntime' />
    <input type='time' name='finishdowntime' id='finishdowntime' />
    <input type='text' name='description' id='description' />
    <input type="button" value="add rows" id="btnAdd" onclick="addDowntime(this)" />
    <input type="button" value="remove rows" onclick="deleteSelected()" />
    <table id="tblDowntimes" class="downtime">
      <tr>
        <th><input type="checkbox" id="chkAll" onclick="chkAll_click(this)" /></th>
        <th>downtime</th>
        <th>equipment</th>
        <th>start-time</th>
        <th>finih-time</th>
        <th>description</th>

      </tr>
    </table>
    <input type="button" value="1. Read Table Values" name="read" onClick="readTblValues()" />
    <input type="button" value="2. Store values in JS Array" name="store" onClick="storeAndShowTableValues()" />
    <input type="button" value="3. Convert JS Array to json" name="convert" onClick="convertArrayToJSON()" />
    <input type="button" value="4. Send json array to Server" name="send" onClick="sendTblDataToServer()" />
    <div id="tbTableValues"></div>
    <div id="tbTableValuesArray"></div>
    <div id="tbConvertToJSON"></div>
    <div id="tbServerResponse"></div>
    <input type="submit" name="submit" value="submit" />

  </form>
</body>

</html>

и вот мой php код:

function processJSONArray() {
  $tableData = stripcslashes($_POST['pTableData']);
  $tableData = json_decode($tableData);
  var_dump($tableData);
}
echo  processJSONArray();

С помощью вышеупомянутого кода мне удалось получить массив на стороне клиента, но когда я использую этот код, появляется ошибка (неопределенная переменная: tableData)

if(isset($_POST[‘submit’])){
  echo $tableData;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...