在 PHP 中使用 jQuery 在表中呈現數據
P粉894008490
2023-09-04 09:54:29
<p>我有一個數據,我使用 PHP 來存取它們。所以我創建了一個簡單的按鈕,當我單擊它時,我的程式需要建立一個包含資料的表。 <strong>下面您可以看到讀取資料的 jQuery 程式碼,並建立一個表格。 </strong>但問題是,我無法存取 DATA 中的每個元素。
我想澄清的是,因為我還添加了程式碼,我在數據中進行了選擇。 <em>它被稱為「household.php」</em></p>
<pre class="brush:php;toolbar:false;"><html lang="en">
<head>
<script
src="https://code.jquery.com/jquery-3.6.2.js"
integrity="sha256-pkn2CUZmheSeyssYw3vMp1 xyub4m e QK4sQskvuo4="
crossorigin="anonymous"></script>
<link rel="stylesheet" href="style.css">
<script>
function suchen() {
jQuery(document).ready(function($) {
$.ajax({
type: "get",
url: "household.php",
dataType: "json",
success: function(response) {
var data = JSON.parse(response)
var html_table = "";
data.forEach(function(item) {
var row = $("<tr>");
row.append($("<td>").text(item.contact_id_a));
row.append($("<td>").text(item.contact_id_b));
// add more cells for additional columns
html_table = row[0].outerHTML;
});
$("#tabelle").html(html_table);
}
});
});
}
</script>
</head>
<body>
<form id="form" onsubmit="suchen()" method="get">
<label>Enter your age: </label>
<br />
<input type="number" name="min" min="0">
<br />
<input type="number" name="max" min="0">
<br />
<input type="submit">
</form>
<div id="tabelle"></div>
</body>
</html></pre>
<p><strong>這是 family.php 檔案的程式碼。它工作沒有問題。但我無法在我的主 php 檔案之間進行連接。 </strong></p>
<pre class="brush:php;toolbar:false;"><?php
require_once '/var/www/html/wordpress/wp-content/plugins/civicrm/civicrm/civicrm.config.php';
require_once 'CRM/Core/Config.php';
$config = CRM_Core_Config::singleton();
$relationships = \Civi\Api4\Relationship::get()
->addSelect('contact_id_a', 'contact_id_b', 'contact_id_a.display_name', 'contact_id_b.household_name', 'relationship_type_id')
->addClause('OR', ['relationship_type_id', '=', 7], ['relationship_type_id', '=', 8])
->setLimit(25)
->execute();
foreach ($relationships as $relationship) {
// do something
}
var_dump(json_encode($relationships));
?></pre>
<p>我無法使用 php 檔案存取資料。我也無法透過搜尋 php 連接我的主 php 檔案。 </p>
我認為您已經在
#household.php
檔案中使用了echo json_encode($relationships)
。您不需要解析回應(您使用過),因為您已經將dataType
寫入json
。它會自動轉換。希望這個回答對您有幫助。根據 jQuery 手冊,「任何格式錯誤的 JSON 都會被拒絕,並引發解析錯誤。如從 jQuery 1.9 開始,空響應也會被拒絕」。因此,您可以僅使用 dataType: 'json',如果您確定該伺服器將傳回正確格式的 JSON。如果它只傳回“一個字串,看起來像 JSON”,您應該使用 dataType: "text json" 來強制 jQuery 轉換。 [注意] 如果上述答案對您沒有幫助,我建議您使用此函數來解析回應。var data = jQuery.parseJSON(response);
或var data = $.parseJSON(response)