簡體   English   中英

保存行值時我 select 復選框

[英]save row value when I select the checkbox

我為我糟糕的英語道歉,我希望我能更好地解釋自己。

  1. Json 文件:通過此代碼進行調用以查看文件的內容:
<? php
$ login = 'XL8T7924H9G9U1M99GTSVV9BHC2KYRFL';
$ password = '';
$ url = 'https://www.website.com/api/products?&output_format=JSON&display=full';
$ ch = curl_init ();
curl_setopt ($ ch, CURLOPT_URL, $ url);
curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt ($ ch, CURLOPT_USERPWD, "$ login: $ password");
$ result = curl_exec ($ ch);
curl_close ($ ch);
$ json = json_decode ($ result, true);
/ echo ($ result);
?>
  1. 結果與數據表一起顯示此代碼
<form action = "" method = "post">
<table id = "example" class = "table table-striped table-bordered zero-configuration">
<thead>
<tr>
<th class = "th-sm"> # </th>
<th class = "th-sm"> Name </th>
<th class = "th-sm"> Description </th>
<th class = "th-sm"> Short Description </th>
<th class = "th-sm"> Image </th>
<th class = "th-sm"> Activate </th>
</tr>
</thead>
<tbody>
<div class = "form-group" style = "text-align: -webkit-center;">
<div class = "form-check form-check-inline">
<? php
foreach ($ json ['products'] as $ data)
{
echo "<tr>";
echo "<td>". $ data ['id']. "</td>";
echo "<td>". $ data ['name']. "</td>";
echo "<td>". $ data ['description']. "</td>";
echo "<td>". $ data ['description_short']. "</td>";
echo "<td>". '<img src = "http://www.website.com/'.$data [" id_default_image "] .'- home_default /'.$ data [" link_rewrite "].'. jpg" class = "img-thumbnail "width =" 120 "height =" auto "/> ';
echo "<td> <input type = 'checkbox' name = 'checkbox' value = '1'> </td>";
echo "</tr>";
}?>
</tbody>
</table>
<input type = "submit" name = "submitp" id = "submitp" value = "submit">
</form>
  1. 通過復選框並提交我可以將信息保存在 txt 文件中這是代碼
<? php
if (isset ($ _ POST ['submitp'])) {
$ id = "product id:". $ _ POST ['id']. "";
$ name = "product name:". $ _ POST ['name']. "";
$ description = "product description:". $ _ POST ['description']. "";
$ description_short = "short product description:". $ _ POST ['description_short']. "";
$ image = "product image:". $ _ POST ['image']. "";
$ file = fopen ("file.txt", "w +");
fwrite ($ file, $ id);
fwrite ($ file, $ name);
fwrite ($ file, $ description);
fwrite ($ file, $ short_description);
fwrite ($ file, $ image);
fclose ($ file);
}
?>

我知道我錯了,但我不知道如何保存整個選定的行。

您想要實現的目標:通過復選框保存選定的行及其 id、名稱、描述和簡短描述

錯誤:無

它保存的內容:僅復選框的內容

我希望我已經很好地解釋了自己,並感謝您的幫助

當您提交時,它只提交input (以及其他幾種輸入類型,如selecttextarea )。

<td>123</td>不會提交。

您可以添加隱藏輸入,在構建表的同時構建和填充,然后也將提交,例如:

<td>123<input type='hidden' name='id[0]' value='123'></td>

您需要為name=id[0]使用正確的格式,以確保 php 選取不同值的所有行; 有不同的方法可以做到這一點。

這個問題/答案的基本部分是包含一個隱藏的輸入。

只有表單字段被提交到服務器。 沒有字段的表格單元格將不會在提交時發送

當您選中該框時,您可以擁有一組由 JavaScript 填充的隱藏字段,(見下文)

或者,您可以使用 AJAX

您有復選框,是否要保存多行? 如果沒有,請改用收音機

改變

   echo "<td>". $data ['id']. "</td>";
   echo "<td>". $data ['name']. "</td>";
   echo "<td>". $data ['description']. "</td>";
   echo "<td>". $data ['description_short']. "</td>";

   echo "<td data-key=\"id\">". $data ['id']. "</td>";
   echo "<td data-key=\"name\">". $data ['name']. "</td>";
   echo "<td data-key=\"description\">". $data ['description']. "</td>";
   echo "<td data-key=\"description_short\">". $data ['description_short']. "</td>";

然后使用

$(function() {
  $("form").on("submit",function(e) {
    e.preventDefault(); // stop submission
    let details = $('input[name="checkbox"]:checked')
      .closest("tr") / parent row
      .find("td[key]") // only the ones with a key attribute
      .map(function() { return { [this.dataset.key] : this.textContent})
      .get();
    $.post("yourSaveUrl.php",details,function() { console.log("Details saved") })
  })
})

對一個復選框使用隱藏字段(與上面相同的數據屬性):

<form>
   <input type="hidden" name="id">
   <input type="hidden" name="name">
   <input type="hidden" name="description">
   <input type="hidden" name="description_short">

使用

$(function() {
  $("form").on("submit",function(e) {
    const form = this; // save the form
    $('input[name="checkbox"]:checked')
      .closest("tr") / parent row
      .find("td[key]") // only the ones with a key attribute
      .each(function() {
        form[key].value = this.textContent;
      })    
  })
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM