{"id":16087,"date":"2025-03-17T19:29:43","date_gmt":"2025-03-17T17:29:43","guid":{"rendered":"https:\/\/www.beseit.net\/?p=16087"},"modified":"2025-03-17T20:03:03","modified_gmt":"2025-03-17T18:03:03","slug":"ajax","status":"publish","type":"post","link":"http:\/\/www.beseit.net\/?p=16087","title":{"rendered":"AJAX &#8211; JSON"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><mark style=\"background-color:rgba(0, 0, 0, 0);color:#e42a2a\" class=\"has-inline-color\">ajax.js<\/mark><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>$(document).ready(function () {\n   \/\/ Obtenir el valor inicial del diccionari\n   var diccionariAValor = $(\"#dicionari_A\").data(\"diccionari\"); \/\/ Canviem el nom de la variable\n   console.log(\"Valor inicial del diccionari:\", diccionariAValor);\n\/\/-------------------------\n    \/\/ Actualitzar la base de dades quan es modifica el camp #bd_A\n    $(\"#bd_A\").on(\"keyup\", function () {\n        \/\/ No permetem que el valor de la bd canvi\u00ef\n        console.log(\"El valor de la base dades roman constant:\", bdValor);\n    });\n    \/\/-----------------------------------------\n   \/\/ Actualitzar el diccionari cada cop que es prem una tecla a l'entrada #dicionari_A\n   $(\"#dicionari_A\").on(\"keyup\", function () {\n       \/\/ No permetem que el valor del diccionari canvi\u00ef\n       console.log(\"El valor del diccionari roman constant:\", diccionariAValor);\n   });\n   \/\/ Obtenir el valor inicial de la base de dades\n   var bdValor = $(\"#bd_A\").data(\"bd\");\n   console.log(\"Valor inicial de la base de dades:\", bdValor);\n\/\/----------------------------------------------------------------\n\n\n\n   \/\/alert('linia 24');\n   \/\/-----------------------------------------\n   $(\"#cercar\").on(\"keyup\", function () {\n       console.log(\"Valor inicial del diccionari mut:\", diccionariAValor); \/\/ Actualitzem aqu\u00ed tamb\u00e9\n       var paraula = $(this).val();\n       console.log(\"Tecla premuda: \" + paraula);\n\n       if (paraula.length &gt; 0) {\n           \/\/--- comprova dades abans de sortir\n           console.log(\"? Dades enviades a cercar_AJ.php:\", {\n            cercar: paraula,\n            diccionari: diccionariAValor,\n            bd: bdValor \/\/ ? Afegit per veure si la BD s'envia\n        });\n           \/\/-----------------------------------------\n           $.ajax({\n               url: \"cercar_AJ.php\",\n               type: \"POST\",\n               data: { \n                   cercar: paraula, \n                   diccionari: diccionariAValor \/\/ Enviar tamb\u00e9 el diccionari amb el nou nom\n               },\n               success: function (resposta) {\n                   console.log(\"Resposta AJAX rebuda\");\n                   var resultats = JSON.parse(resposta);\n                   var htmlResultats = resultats.map(function (item) {\n                       return \"&lt;li class='resultat'&gt;\" + item + \"&lt;\/li&gt;\";\n                   }).join(\"\");\n                   $(\"#resultats_autocompletar\").html(htmlResultats);\n               },\n               error: function () {\n                   console.error(\"Error en la crida AJAX.\");\n               }\n           });\n       } else {\n           $(\"#resultats_autocompletar\").html(\"\"); \/\/ Esborra els resultats si no hi ha text\n       }\n   });\n\n   \/\/ Afegir esdeveniment de clic per als elements de resultat\n   $(document).on(\"click\", \".resultat\", function () {\n       var paraulaSeleccionada = $(this).text();\n       console.log(\"Paraula seleccionada: \" + paraulaSeleccionada);\n       $(\"#cercar\").val(paraulaSeleccionada);\n   });\n});<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">exemple simulat de com podries posar un retorn en format JSON (no \u00abJONSON\u00bb) en el teu codi PHP<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\/\/ cercar.php\nsession_start(); \/\/ Inicia la sessi\u00f3 per utilitzar $_SESSION\n$host = \"localhost\";\n$user = \"root\";       \/\/ Actualitza aquest valor segons sigui necessari\n$pass = \"******8!\"; \/\/ Assegura't de protegir aquest valor\n$bd = $_SESSION&#91;'bd']; \/\/ Nom de la base de dades obtingut de la sessi\u00f3\n\n\/\/ Nom\u00e9s assigna a $dbname despr\u00e9s d'assignar $bd\n$dbname = $bd;\n\n\/\/ Crear connexi\u00f3\n$conn = new mysqli($host, $user, $pass, $dbname);\n\n\/\/ Comprovar la connexi\u00f3\nif ($conn->connect_error) {\n    \/\/ Retorna un JSON en cas d'error\n    $response = array(\"status\" => \"error\", \"message\" => \"Error de connexi\u00f3: \" . $conn->connect_error);\n    echo json_encode($response);\n    die();\n}\n\n\/\/ Si la connexi\u00f3 \u00e9s reeixida, envia una resposta JSON\n$response = array(\"status\" => \"success\", \"message\" => \"Connexi\u00f3 reeixida!\");\necho json_encode($response);\n?>\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>ajax.js exemple simulat de com podries posar un retorn en format JSON (no \u00abJONSON\u00bb) en el teu codi PHP<\/p>\n","protected":false},"author":2,"featured_media":8179,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-16087","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bloc-de-notes"],"_links":{"self":[{"href":"http:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/16087","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=16087"}],"version-history":[{"count":2,"href":"http:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/16087\/revisions"}],"predecessor-version":[{"id":16091,"href":"http:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/16087\/revisions\/16091"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/media\/8179"}],"wp:attachment":[{"href":"http:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=16087"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=16087"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=16087"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}