• 4
  • 5
2024-06-28, 08:56
  #49
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av Finikanten
Det här förslaget fick jag från en i Wix eget forum men det funkade tyvärr inte så kan du se i koden var skon klämmer någonstans?

Så här ser hans beskrivning ut som jag har följt och använt med mina egna data:

$w.onReady(async function () {
// Get the memberId from the URL
let url = wixLocation.url;
let memberId = url.substr(url.lastIndexOf(‘/’) + 1);

// Query member information based on memberId
let memberInfo = await getMemberInfo(memberId);

// Display member information on the page
$w("#memberName").text = memberInfo.name;
$w("#memberDescription").text = memberInfo.description;
// Update other elements as needed
});

async function getMemberInfo(memberId) {
let query = wixData.query(“MembersCollection”)
.eq(“_id”, memberId)
.find();
let results = await query;

if (results.items.length > 0) {
return results.items[0]; // Assuming memberId is unique
} else {
console.error(`Member with ID ${memberId} not found`);
return null;
}
}

Här är min egen version som alltså inte funkar:

$w.onReady(async function () {
let url = wixLocation.url;
let memberId = url.substr(url.lastIndexOf(‘/’) + 1);
let memberInfo = await getMemberInfo(memberId);
$w(“#age”).text = (memberInfo.age);
$w(“#state”).text = (memberInfo.state);
$w(“#image83”).src = (memberInfo.picture);
$w(“#gender”).text = (memberInfo.gender);
$w(“#country”).text = (memberInfo.country);
$w(“#headnick”).text = memberInfo.nickname;
$w(“#nickname”).text = (memberInfo.nickname);
$w(“#textBox2”).value = (memberInfo.description);
});
async function getMemberInfo(memberId) {
let query = wixData.query(“Members”)
.eq(“_id”, memberId)
.find();
let results = await query;
if (results.items.length > 0) {
return results.items[0];
} else {
console.error(Member with ID ${memberId} not found);
return null;
}
}

Skulle det kanske funka bättre om man kombinerar det med ett dataset?
Du måste skriva felmeddelanden om du ska kunna få hjälp.
Jag ser exempelvis direkt ett rakt syntax error:
Kod:
console.error(Member with ID ${memberId} not found);
Ser du vad som saknas ovan?

Sen är det bra om du lär dig debugging i konsollen (steg för steg-körning etc)
__________________
Senast redigerad av Enterprise 2024-06-28 kl. 09:09.
Citera
2024-06-29, 13:12
  #50
Medlem
Finikantens avatar
Citat:
Ursprungligen postat av a-mortal
Usch vilken ful kod.

Titta på raderna med //??? MembersCollection och Members är ju inte samma.

Det du behöver göra är att kolla i wix referens/dokumentation... Och läsa din kod bättre.

Kod:
$w.onReady(function () { // tog bort async, behövs nog inte
	// Get the memberId from the URL
	let url = location.pathname; // wixLocation.url? 
	let memberId = url.substr(url.lastIndexOf(‘/’) + 1); // DET KAN BLI FEL HÄR

	// Query member information based on memberId
	let memberInfo = getMemberInfo(memberId); // tog bort async

	// Display member information on the page
	$w("#memberName").text = memberInfo.name;
	$w("#memberDescription").text = memberInfo.description;
	// Update other elements as needed
});

function getMemberInfo(memberId) { // tog bort async
	let query = wixData.query(“MembersCollection”) //???
	.eq(“_id”, memberId)
	.find();
	let results = await query;

	if (results.items.length > 0) {
		let item = results.items[0];
		if (!(item.name))
			item.name = "no name";
		if (!item.description)
			item.description = "no description";
		return item; // Assuming memberId is unique
	} else {
		console.error(`Member with ID ${memberId} not found`);
		return {name:"not found", description: "not found"}; // Inte null tack.
	}
}

//Här är min egen version som alltså inte funkar: 

$w.onReady(async function () {
	let url = location.pathname; //wixLocation.url;
	let memberId = url.substr(url.lastIndexOf(‘/’) + 1);
	let memberInfo = getMemberInfo(memberId); // tog bort async och await
	$w(“#age”).text = (memberInfo.age);
	$w(“#state”).text = (memberInfo.state);
	$w(“#image83”).src = (memberInfo.picture);
	$w(“#gender”).text = (memberInfo.gender);
	$w(“#country”).text = (memberInfo.country);
	$w(“#headnick”).text = memberInfo.nickname;
	$w(“#nickname”).text = (memberInfo.nickname);
	$w(“#textBox2”).value = (memberInfo.description);
});
function getMemberInfo(memberId) {
	let query = wixData.query(“Members”) //???
	.eq(“_id”, memberId)
	.find();
	let results = await query;
	if (results.items.length > 0) {
		return results.items[0];
	} else {
		console.error(`Member with ID ${memberId} not found`); //fixad
		return {
			age: "0", state: "-", pictur: "", gender: "-", country: "", nickname: "no name", description: "no description", name: "no name"
		};
	}
}

Inte heller din version fungerade men jag har nu blivit kontaktad av en i Wix support som har fått min tillåtelse att gå in och titta direkt på min sida för att försöka luska ut vad som behöver göras. Tack ändå för ditt försök som säkert var ett steg i rätt riktning.
Citera
2024-07-03, 11:58
  #51
Medlem
Finikantens avatar
Finns det någon här som vill få administratörsrättigheter för att kontrollera mina sidor och fixa till så att det funkar? Det vill säga att medlemmar ska kunna klicka på någons profilfoto och bli förflyttad till fotoägarens profilsida och visa dennes information.
Citera
2024-07-20, 20:24
  #52
Medlem
Citat:
Ursprungligen postat av Finikanten
Tack men menar du att jag ska använda mig av en HTML-box för detta på profilsidan eftersom Wix normalt inte använder HTML? Det stämmer att databasen innehåller en id-kolumn men jag fattar inte hur din kod ska kunna "räkna ut" vilket medlemsfoto som blev klickat på sida 1?


Vi gör det enkelt;

Bilden heter Fredrik.jpg.
Fredrik.kpg är knuten till en profilsida och har en egen liten kolumn i posten. Du har ju en "picture" post i din kod.
Alternativs använder du taggarna för Div, img osv. och knyter dessa värden till posten på samma sätt.
När du klickar på bilden:
Kod:
wixData .query("myCollection")
  .eq("picture", "Fredrik.jpg")
  .find()
  .then((results) => {
    if (results.items.length > 0) {
        byt sida och fyll i alla fält med diverse uppgifter
      console.log(results.items[0]);
    } else {

      // handle case where no matching items found
    }
  })
 .catch((err) => {
    console.log(err);
  });
__________________
Senast redigerad av Methos 2024-07-20 kl. 20:33.
Citera
  • 4
  • 5

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in