{"id":1991,"date":"2012-02-29T19:54:25","date_gmt":"2012-02-29T19:54:25","guid":{"rendered":"https:\/\/www.jose-aguilar.com\/blog\/?p=1991"},"modified":"2019-07-19T09:33:06","modified_gmt":"2019-07-19T09:33:06","slug":"como-enviar-comentarios-con-jquery-ajax","status":"publish","type":"post","link":"https:\/\/www.jose-aguilar.com\/blog\/como-enviar-comentarios-con-jquery-ajax\/","title":{"rendered":"C\u00f3mo enviar comentarios con jQuery y AJAX"},"content":{"rendered":"<p>En este tutorial vas a aprender como crear un formulario que permite agregar comentarios al usuario sin recargar la p\u00e1gina. Para conseguirlo, estoy usando las tecnolog\u00edas <strong>jQuery<\/strong>, <strong>AJAX<\/strong>, <strong>JSON<\/strong> y <strong>PHP<\/strong>.<\/p>\n<p>En pr\u00e1cticamente todas las Webs con interacci\u00f3n es necesario interactuar de la forma m\u00e1s agradable posible con el usuario. Casi todas estas p\u00e1ginas dispone de un sistema para captar y enviar comentarios sobre alg\u00fan art\u00edculo o producto.<\/p>\n<p>La mayor\u00eda de sistemas de comentarios trabaja con <strong>PHP<\/strong> y una base de datos. El inconveniente de este tipo de sistemas es que al enviar un comentario la p\u00e1gina se tiene que recargar por completo. Si quieres optimizar este sistema y hacer que s\u00f3lo se cargue el comentario enviado sin tener que recargar la p\u00e1gina por completo puedes utilizar la tecnolog\u00eda <strong>jQuery<\/strong> y <strong>Ajax<\/strong>.<\/p>\n<p>Dentro de la cabecera de tu p\u00e1gina o dentro de la etiqueta &lt;head&gt; a\u00f1ade la librer\u00eda <strong>jQuery<\/strong> y los estilos necesarios para cambiar el aspecto:<\/p>\n<div id=\"wpshdo_1\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_1\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_1\"><\/a><a id=\"wpshat_1\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_1\"  onClick=\"javascript:wpsh_toggleBlock(1)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_1\" onClick=\"javascript:wpsh_code(1)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_1\" onClick=\"javascript:wpsh_print(1)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_1\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"html4strict\" style=\"font-family:monospace;\"><span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/script.html\"><span class=\"kw2\">script<\/span><\/a> <span class=\"kw3\">src<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;https:\/\/code.jquery.com\/jquery-3.2.1.js&quot;<\/span>&gt;&lt;<span class=\"sy0\">\/<\/span><a href=\"http:\/\/december.com\/html\/4\/element\/script.html\"><span class=\"kw2\">script<\/span><\/a>&gt;<\/span><\/pre><\/div><\/div>\n<p>Tambi\u00e9n en el &lt;head&gt; puedes incluir el c\u00f3digo <strong>jQuery<\/strong> que har\u00e1 la llamada mediante el m\u00e9todo <strong>AJAX<\/strong> y <strong>JSON<\/strong>:<\/p>\n<pre><div id=\"wpshdo_2\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_2\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_2\"><\/a><a id=\"wpshat_2\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_2\"  onClick=\"javascript:wpsh_toggleBlock(2)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_2\" onClick=\"javascript:wpsh_code(2)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_2\" onClick=\"javascript:wpsh_print(2)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_2\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"javascript\" style=\"font-family:monospace;\"><span class=\"sy0\">&lt;<\/span>script type<span class=\"sy0\">=<\/span><span class=\"st0\">&quot;text\/javascript&quot;<\/span><span class=\"sy0\">&gt;<\/span>\n$<span class=\"br0\">&#40;<\/span>document<span class=\"br0\">&#41;<\/span>.<span class=\"me1\">ready<\/span><span class=\"br0\">&#40;<\/span><span class=\"kw2\">function<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n    $<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;#submitComment&quot;<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">click<\/span><span class=\"br0\">&#40;<\/span><span class=\"kw2\">function<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n        <span class=\"kw2\">var<\/span> <span class=\"kw3\">name<\/span> <span class=\"sy0\">=<\/span> $<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;input#name&quot;<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">val<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n        <span class=\"kw2\">var<\/span> comment <span class=\"sy0\">=<\/span> $<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;textarea#comment&quot;<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">val<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n        <span class=\"kw2\">var<\/span> now <span class=\"sy0\">=<\/span> <span class=\"kw2\">new<\/span> Date<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n        <span class=\"kw2\">var<\/span> date_show <span class=\"sy0\">=<\/span> now.<span class=\"me1\">getDate<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">+<\/span> <span class=\"st0\">'-'<\/span> <span class=\"sy0\">+<\/span> now.<span class=\"me1\">getMonth<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">+<\/span> <span class=\"st0\">'-'<\/span> <span class=\"sy0\">+<\/span> now.<span class=\"me1\">getFullYear<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">+<\/span> <span class=\"st0\">' '<\/span> <span class=\"sy0\">+<\/span> now.<span class=\"me1\">getHours<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">+<\/span> <span class=\"st0\">':'<\/span> <span class=\"sy0\">+<\/span> <span class=\"sy0\">+<\/span> now.<span class=\"me1\">getMinutes<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">+<\/span> <span class=\"st0\">':'<\/span> <span class=\"sy0\">+<\/span> <span class=\"sy0\">+<\/span> now.<span class=\"me1\">getSeconds<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&nbsp;\n        <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"kw3\">name<\/span> <span class=\"sy0\">===<\/span> <span class=\"st0\">''<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n            <span class=\"kw3\">alert<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Debes a\u00f1adir un nombre.'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n            <span class=\"kw1\">return<\/span> <span class=\"kw2\">false<\/span><span class=\"sy0\">;<\/span>\n        <span class=\"br0\">&#125;<\/span>\n&nbsp;\n        <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span>comment <span class=\"sy0\">===<\/span> <span class=\"st0\">''<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n            <span class=\"kw3\">alert<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Debes a\u00f1adir un comentario.'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n            <span class=\"kw1\">return<\/span> <span class=\"kw2\">false<\/span><span class=\"sy0\">;<\/span>\n        <span class=\"br0\">&#125;<\/span>\n&nbsp;\n        <span class=\"kw2\">var<\/span> dataString <span class=\"sy0\">=<\/span> <span class=\"st0\">'name='<\/span> <span class=\"sy0\">+<\/span> <span class=\"kw3\">name<\/span> <span class=\"sy0\">+<\/span> <span class=\"st0\">'&amp;comment='<\/span> <span class=\"sy0\">+<\/span> comment<span class=\"sy0\">;<\/span>\n&nbsp;\n        $.<span class=\"me1\">ajax<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#123;<\/span>\n            type<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;POST&quot;<\/span><span class=\"sy0\">,<\/span>\n            dataType<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;json&quot;<\/span><span class=\"sy0\">,<\/span>\n            url<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;process.php&quot;<\/span><span class=\"sy0\">,<\/span>\n            data<span class=\"sy0\">:<\/span> dataString<span class=\"sy0\">,<\/span>\n            success<span class=\"sy0\">:<\/span> <span class=\"kw2\">function<\/span><span class=\"br0\">&#40;<\/span>response<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n                <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span>response<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n                    $<span class=\"br0\">&#40;<\/span><span class=\"st0\">'#new-comment'<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">show<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n                    $<span class=\"br0\">&#40;<\/span><span class=\"st0\">'#new-comment'<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">find<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'#author-name'<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">text<\/span><span class=\"br0\">&#40;<\/span>response.<span class=\"kw3\">name<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n                    $<span class=\"br0\">&#40;<\/span><span class=\"st0\">'#new-comment'<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">find<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'.comment-text'<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">text<\/span><span class=\"br0\">&#40;<\/span>response.<span class=\"me1\">comment<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n                    $<span class=\"br0\">&#40;<\/span><span class=\"st0\">'#new-comment'<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">find<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'#date-show'<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">text<\/span><span class=\"br0\">&#40;<\/span>response.<span class=\"me1\">date_show<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n                <span class=\"br0\">&#125;<\/span>\n            <span class=\"br0\">&#125;<\/span>\n        <span class=\"br0\">&#125;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n        <span class=\"kw1\">return<\/span> <span class=\"kw2\">false<\/span><span class=\"sy0\">;<\/span>\n    <span class=\"br0\">&#125;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n<span class=\"br0\">&#125;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n<span class=\"sy0\">&lt;\/<\/span>script<span class=\"sy0\">&gt;<\/span><\/pre><\/div><\/div><\/pre>\n<p>Como puedes observar, el c\u00f3digo anterior espera a que se haga click en bot\u00f3n o enlace con id=\u00bbsubmitComment\u00bb donde se recogen las variables \u00abname\u00bb y \u00abcomment\u00bb que son los datos depositados en el formulario. Reconstruimos una fecha para mostrar y generamos otra variable \u00abdataString\u00bb que se rellena con los datos enviados desde el formulario para luego pas\u00e1rselo al archivo <em>process.php<\/em> usando la t\u00e9cnica <strong>AJAX<\/strong> con tipo de datos de retorno <strong>JSON<\/strong>.<\/p>\n<p>El archivo <em>process.php<\/em> se encarga simplemente de insertar en la base de datos la informaci\u00f3n necesaria para a\u00f1adir un comentario. Puede tener el siguiente aspecto:<\/p>\n<div id=\"wpshdo_3\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_3\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_3\"><\/a><a id=\"wpshat_3\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_3\"  onClick=\"javascript:wpsh_toggleBlock(3)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_3\" onClick=\"javascript:wpsh_code(3)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_3\" onClick=\"javascript:wpsh_print(3)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_3\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"php\" style=\"font-family:monospace;\"><span class=\"kw2\">&lt;?php<\/span>\n<span class=\"kw1\">require<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'config.php'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&nbsp;\n<span class=\"re0\">$name<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/www.php.net\/strip_tags\"><span class=\"kw3\">strip_tags<\/span><\/a><span class=\"br0\">&#40;<\/span><a href=\"http:\/\/www.php.net\/utf8_decode\"><span class=\"kw3\">utf8_decode<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$_POST<\/span><span class=\"br0\">[<\/span><span class=\"st_h\">'name'<\/span><span class=\"br0\">]<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n<span class=\"re0\">$comment<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/www.php.net\/strip_tags\"><span class=\"kw3\">strip_tags<\/span><\/a><span class=\"br0\">&#40;<\/span><a href=\"http:\/\/www.php.net\/utf8_decode\"><span class=\"kw3\">utf8_decode<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$_POST<\/span><span class=\"br0\">[<\/span><span class=\"st_h\">'comment'<\/span><span class=\"br0\">]<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&nbsp;\n<span class=\"re0\">$insert<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$conexion<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">query<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'INSERT INTO comments (name, text, date_added) VALUES (&quot;'<\/span><span class=\"sy0\">.<\/span><span class=\"re0\">$name<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">'&quot;, &quot;'<\/span><span class=\"sy0\">.<\/span><span class=\"re0\">$comment<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">'&quot;, now())'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&nbsp;\n<span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$insert<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n    <span class=\"re0\">$row<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/www.php.net\/array\"><span class=\"kw3\">array<\/span><\/a><span class=\"br0\">&#40;<\/span>\n        <span class=\"st_h\">'name'<\/span> <span class=\"sy0\">=&gt;<\/span> <span class=\"re0\">$name<\/span><span class=\"sy0\">,<\/span>\n        <span class=\"st_h\">'comment'<\/span><span class=\"sy0\">=&gt;<\/span> <span class=\"re0\">$comment<\/span><span class=\"sy0\">,<\/span>\n        <span class=\"st_h\">'date_show'<\/span> <span class=\"sy0\">=&gt;<\/span> <a href=\"http:\/\/www.php.net\/date\"><span class=\"kw3\">date<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'d\/m\/Y H:i:s'<\/span><span class=\"br0\">&#41;<\/span>\n    <span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n    <span class=\"kw1\">echo<\/span> <a href=\"http:\/\/www.php.net\/json_encode\"><span class=\"kw3\">json_encode<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$row<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n<span class=\"br0\">&#125;<\/span>\n<span class=\"sy1\">?&gt;<\/span><\/pre><\/div><\/div>\n<p>El archivo <em>config.php<\/em> que se est\u00e1 incluyendo en la primera linea se encarga de crear la conexi\u00f3n con la base de datos.<\/p>\n<p>Su contenido es tan solo:<\/p>\n<div id=\"wpshdo_4\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_4\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_4\"><\/a><a id=\"wpshat_4\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_4\"  onClick=\"javascript:wpsh_toggleBlock(4)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_4\" onClick=\"javascript:wpsh_code(4)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_4\" onClick=\"javascript:wpsh_print(4)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_4\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"php\" style=\"font-family:monospace;\"><span class=\"kw2\">&lt;?php<\/span>\n<span class=\"re0\">$conexion<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw2\">new<\/span> mysqli<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'localhost'<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">'USUARIO DE TU BASE DE DATOS'<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">'CONTRASE\u00d1A DE TU BASE DE DATOS'<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">'NOMBRE DE TU BASE DE DATOS'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n<span class=\"sy1\">?&gt;<\/span><\/pre><\/div><\/div>\n<p>Aqu\u00ed tendr\u00e1s que rellenar los datos de conexi\u00f3n con tu base de datos.<\/p>\n<p>Seguidamente, recogemos mediante el m\u00e9todo POST los datos del formulario que le hemos pasado mediante las t\u00e9cnicas <strong>AJAX<\/strong>.<\/p>\n<p>Finalmente, realizamos una inserci\u00f3n con la informaci\u00f3n recibida en la tabla \u00abcomments\u00bb que debes tener en tu base de datos.<\/p>\n<p>Una vez se ha realizado esta operaci\u00f3n, es cuando se ejecuta el <em>success<\/em> que hay dentro de la llamada <strong>AJAX<\/strong>, donde simplemente estoy rellenado con la funci\u00f3n <em>append()<\/em> un contenedor con id=\u00bbnew-comment\u00bb que hay al final de los comentarios con las etiquetas vac\u00edas.<\/p>\n<p>En el cuerpo de la p\u00e1gina o dentro de la etiqueta &lt;body&gt; debes agregar el c\u00f3digo que lee de la base de datos los 10 \u00faltimos comentarios para mostrarlos en pantalla:<\/p>\n<div id=\"wpshdo_5\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_5\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_5\"><\/a><a id=\"wpshat_5\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_5\"  onClick=\"javascript:wpsh_toggleBlock(5)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_5\" onClick=\"javascript:wpsh_code(5)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_5\" onClick=\"javascript:wpsh_print(5)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_5\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"php\" style=\"font-family:monospace;\">&lt;div id=&quot;content&quot; class=&quot;col-lg-12&quot;&gt;\n    &lt;h2&gt;Comentarios&lt;\/h2&gt;\n    <span class=\"kw2\">&lt;?php<\/span>\n    <span class=\"re0\">$result<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$conexion<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">query<\/span><span class=\"br0\">&#40;<\/span>\n        <span class=\"st_h\">'SELECT name, text, DATE_FORMAT(date_added, &quot;%d\/%m\/%Y %H:%i:%s&quot;) as date_show \n        FROM comments \n        ORDER BY date_added DESC LIMIT 0,10'<\/span>\n    <span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n    <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$result<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">num_rows<\/span> <span class=\"sy0\">&gt;<\/span> <span class=\"nu0\">0<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n        <span class=\"sy1\">?&gt;<\/span>\n        &lt;div class=&quot;row items&quot;&gt;\n            <span class=\"kw2\">&lt;?php<\/span> <span class=\"kw1\">while<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$row<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$result<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">fetch_assoc<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span> <span class=\"sy1\">?&gt;<\/span>\n                &lt;div class=&quot;col-lg-12&quot;&gt;\n                    &lt;div class=&quot;comment&quot;&gt;\n                        &lt;div class=&quot;row&quot;&gt;\n                            &lt;div class=&quot;col-lg-2 comment-avatar&quot;&gt;\n                                &lt;img class=&quot;img-fluid&quot; width=&quot;250&quot; height=&quot;250&quot; src=&quot;images\/user.png&quot; \/&gt;\t\n                            &lt;\/div&gt;\n                            &lt;div class=&quot;col-lg-10&quot;&gt;\n                                &lt;div class=&quot;comment-autor&quot;&gt;\n                                    &lt;strong&gt;<span class=\"kw2\">&lt;?php<\/span> <span class=\"kw1\">echo<\/span> <span class=\"re0\">$row<\/span><span class=\"br0\">[<\/span><span class=\"st_h\">'name'<\/span><span class=\"br0\">]<\/span><span class=\"sy0\">;<\/span> <span class=\"sy1\">?&gt;<\/span>&lt;\/strong&gt; dice:&lt;br\/&gt;\n                                    &lt;small&gt;<span class=\"kw2\">&lt;?php<\/span> <span class=\"kw1\">echo<\/span> <span class=\"re0\">$row<\/span><span class=\"br0\">[<\/span><span class=\"st_h\">'date_show'<\/span><span class=\"br0\">]<\/span><span class=\"sy0\">;<\/span> <span class=\"sy1\">?&gt;<\/span>&lt;\/small&gt;\n                                &lt;\/div&gt;\n                                &lt;div class=&quot;comment-text&quot;&gt;<span class=\"kw2\">&lt;?php<\/span> <span class=\"kw1\">echo<\/span> <a href=\"http:\/\/www.php.net\/nl2br\"><span class=\"kw3\">nl2br<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$row<\/span><span class=\"br0\">[<\/span><span class=\"st_h\">'text'<\/span><span class=\"br0\">]<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span> <span class=\"sy1\">?&gt;<\/span>&lt;\/div&gt;\n                            &lt;\/div&gt;\n                        &lt;\/div&gt;\n                    &lt;\/div&gt;\n                &lt;\/div&gt;\n            <span class=\"kw2\">&lt;?php<\/span> <span class=\"br0\">&#125;<\/span> <span class=\"sy1\">?&gt;<\/span>\n            &lt;div id=&quot;new-comment&quot; class=&quot;col-lg-12&quot; style=&quot;display:none;&quot;&gt;\n                &lt;div class=&quot;comment&quot;&gt;\n                    &lt;div class=&quot;row&quot;&gt;\n                        &lt;div class=&quot;col-lg-2 comment-avatar&quot;&gt;\n                            &lt;img class=&quot;img-fluid&quot; width=&quot;250&quot; height=&quot;250&quot; src=&quot;images\/user.png&quot; \/&gt;\t\n                        &lt;\/div&gt;\n                        &lt;div class=&quot;col-lg-10&quot;&gt;\n                            &lt;div class=&quot;comment-autor&quot;&gt;\n                                &lt;strong&gt;&lt;span id=&quot;author-name&quot;&gt;&lt;\/span&gt;&lt;\/strong&gt; dice:&lt;br\/&gt;\n                                &lt;small&gt;&lt;span id=&quot;date-show&quot;&gt;&lt;\/span&gt;&lt;\/small&gt;\n                            &lt;\/div&gt;\n                            &lt;div class=&quot;comment-text&quot;&gt;&lt;\/div&gt;\n                        &lt;\/div&gt;\n                    &lt;\/div&gt;\n                &lt;\/div&gt;\n            &lt;\/div&gt;\n        &lt;\/div&gt;\n    <span class=\"kw2\">&lt;?php<\/span> <span class=\"br0\">&#125;<\/span> <span class=\"sy1\">?&gt;<\/span>\n&lt;\/div&gt;<\/pre><\/div><\/div>\n<p>Si te fijas bien en el c\u00f3digo anterior, puedes observar el contenedor con id=\u00bbnew-comment\u00bb con las etiquetas vac\u00edas que ser\u00e1n rellenadas en el <em>success<\/em> de la llamada <strong>AJAX<\/strong> cada vez que se agregue un nuevo comentario.<\/p>\n<p>El formulario para permitir al usuario enviar un comentario es muy sencillo, ser\u00eda algo como lo siguiente:<\/p>\n<div id=\"wpshdo_6\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_6\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_6\"><\/a><a id=\"wpshat_6\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_6\"  onClick=\"javascript:wpsh_toggleBlock(6)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_6\" onClick=\"javascript:wpsh_code(6)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_6\" onClick=\"javascript:wpsh_print(6)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_6\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"html4strict\" style=\"font-family:monospace;\"><span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/h2.html\"><span class=\"kw2\">h2<\/span><\/a>&gt;<\/span>Envia un comentario con JQUERY\/AJAX<span class=\"sc2\">&lt;<span class=\"sy0\">\/<\/span><a href=\"http:\/\/december.com\/html\/4\/element\/h2.html\"><span class=\"kw2\">h2<\/span><\/a>&gt;<\/span>\n<span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/div.html\"><span class=\"kw2\">div<\/span><\/a> <span class=\"kw3\">id<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;register_form&quot;<\/span> <span class=\"kw3\">class<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;row&quot;<\/span>&gt;<\/span>\n    <span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/div.html\"><span class=\"kw2\">div<\/span><\/a> <span class=\"kw3\">class<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;col-lg-12&quot;<\/span>&gt;<\/span>\n        <span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/form.html\"><span class=\"kw2\">form<\/span><\/a> <span class=\"kw3\">method<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;post&quot;<\/span>&gt;<\/span>\n            <span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/div.html\"><span class=\"kw2\">div<\/span><\/a> <span class=\"kw3\">class<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;form-group&quot;<\/span>&gt;<\/span>\n                <span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/label.html\"><span class=\"kw2\">label<\/span><\/a> <span class=\"kw3\">for<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;name&quot;<\/span>&gt;<\/span>Nombre<span class=\"sc2\">&lt;<span class=\"sy0\">\/<\/span><a href=\"http:\/\/december.com\/html\/4\/element\/label.html\"><span class=\"kw2\">label<\/span><\/a>&gt;<\/span>\n                <span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/input.html\"><span class=\"kw2\">input<\/span><\/a> <span class=\"kw3\">type<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;text&quot;<\/span> <span class=\"kw3\">class<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;form-control&quot;<\/span> <span class=\"kw3\">name<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;name&quot;<\/span> <span class=\"kw3\">id<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;name&quot;<\/span> placeholder<span class=\"sy0\">=<\/span><span class=\"st0\">&quot;Tu nombre&quot;<\/span>&gt;<\/span>\n            <span class=\"sc2\">&lt;<span class=\"sy0\">\/<\/span><a href=\"http:\/\/december.com\/html\/4\/element\/div.html\"><span class=\"kw2\">div<\/span><\/a>&gt;<\/span>\n            <span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/div.html\"><span class=\"kw2\">div<\/span><\/a> <span class=\"kw3\">class<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;form-group&quot;<\/span>&gt;<\/span>\n                <span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/label.html\"><span class=\"kw2\">label<\/span><\/a> <span class=\"kw3\">for<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;comment&quot;<\/span>&gt;<\/span>Comentario<span class=\"sc2\">&lt;<span class=\"sy0\">\/<\/span><a href=\"http:\/\/december.com\/html\/4\/element\/label.html\"><span class=\"kw2\">label<\/span><\/a>&gt;<\/span>\n                <span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/textarea.html\"><span class=\"kw2\">textarea<\/span><\/a> <span class=\"kw3\">class<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;form-control&quot;<\/span> <span class=\"kw3\">name<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;comment&quot;<\/span> <span class=\"kw3\">id<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;comment&quot;<\/span> <span class=\"kw3\">rows<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;3&quot;<\/span>&gt;&lt;<span class=\"sy0\">\/<\/span><a href=\"http:\/\/december.com\/html\/4\/element\/textarea.html\"><span class=\"kw2\">textarea<\/span><\/a>&gt;<\/span>\n            <span class=\"sc2\">&lt;<span class=\"sy0\">\/<\/span><a href=\"http:\/\/december.com\/html\/4\/element\/div.html\"><span class=\"kw2\">div<\/span><\/a>&gt;<\/span>\n            <span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/button.html\"><span class=\"kw2\">button<\/span><\/a> <span class=\"kw3\">type<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;button&quot;<\/span> <span class=\"kw3\">id<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;submitComment&quot;<\/span> <span class=\"kw3\">class<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;btn btn-primary&quot;<\/span>&gt;<\/span>Enviar<span class=\"sc2\">&lt;<span class=\"sy0\">\/<\/span><a href=\"http:\/\/december.com\/html\/4\/element\/button.html\"><span class=\"kw2\">button<\/span><\/a>&gt;<\/span>\n        <span class=\"sc2\">&lt;<span class=\"sy0\">\/<\/span><a href=\"http:\/\/december.com\/html\/4\/element\/form.html\"><span class=\"kw2\">form<\/span><\/a>&gt;<\/span>\n    <span class=\"sc2\">&lt;<span class=\"sy0\">\/<\/span><a href=\"http:\/\/december.com\/html\/4\/element\/div.html\"><span class=\"kw2\">div<\/span><\/a>&gt;<\/span>\n<span class=\"sc2\">&lt;<span class=\"sy0\">\/<\/span><a href=\"http:\/\/december.com\/html\/4\/element\/div.html\"><span class=\"kw2\">div<\/span><\/a>&gt;<\/span><\/pre><\/div><\/div>\n<p>Tan solo he agregado un campo para poner un nombre y texto.<\/p>\n<p class=\"text-center\"><a class=\"btn btn-secondary\" href=\"https:\/\/www.jose-aguilar.com\/scripts\/jquery\/ajax-comments\/\" target=\"_blank\" rel=\"noopener noreferrer\"><i class=\"fa fa-eye\"><\/i> Ver demo<\/a> <a class=\"btn btn-primary\" href=\"https:\/\/www.jose-aguilar.com\/scripts\/jquery\/ajax-comments\/ajax-comments.zip\"><i class=\"fa fa-download\"><\/i> Descargar<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tutorial y c\u00f3digo de ejemplo que te va a permitir crear un formulario para enviar comentarios sin recargar la p\u00e1gina utilizando jQuery, Ajax y PHP.<\/p>\n","protected":false},"author":1,"featured_media":7362,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31,5,3],"tags":[107,84],"class_list":["post-1991","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ajax","category-jquery","category-php","tag-comentarios","tag-formularios"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C\u00f3mo enviar comentarios con jQuery y AJAX - Jose Aguilar Blog<\/title>\n<meta name=\"description\" content=\"Tutorial y c\u00f3digo de ejemplo que te va a permitir crear un formulario para enviar comentarios sin recargar la p\u00e1gina utilizando jQuery, Ajax y PHP.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C\u00f3mo enviar comentarios con jQuery y AJAX - Jose Aguilar Blog\" \/>\n<meta property=\"og:description\" content=\"Tutorial y c\u00f3digo de ejemplo que te va a permitir crear un formulario para enviar comentarios sin recargar la p\u00e1gina utilizando jQuery, Ajax y PHP.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.jose-aguilar.com\/blog\/como-enviar-comentarios-con-jquery-ajax\/\" \/>\n<meta property=\"og:site_name\" content=\"Jose Aguilar Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/joseaguilarblog\" \/>\n<meta property=\"article:published_time\" content=\"2012-02-29T19:54:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-07-19T09:33:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/02\/como-enviar-comentarios-con-jquery-ajax.png\" \/>\n\t<meta property=\"og:image:width\" content=\"250\" \/>\n\t<meta property=\"og:image:height\" content=\"250\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jose Aguilar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:site\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jose Aguilar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/como-enviar-comentarios-con-jquery-ajax\/\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/como-enviar-comentarios-con-jquery-ajax\/\",\"name\":\"C\u00f3mo enviar comentarios con jQuery y AJAX - Jose Aguilar Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/como-enviar-comentarios-con-jquery-ajax\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/como-enviar-comentarios-con-jquery-ajax\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/02\/como-enviar-comentarios-con-jquery-ajax.png\",\"datePublished\":\"2012-02-29T19:54:25+00:00\",\"dateModified\":\"2019-07-19T09:33:06+00:00\",\"author\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\"},\"description\":\"Tutorial y c\u00f3digo de ejemplo que te va a permitir crear un formulario para enviar comentarios sin recargar la p\u00e1gina utilizando jQuery, Ajax y PHP.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/como-enviar-comentarios-con-jquery-ajax\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.jose-aguilar.com\/blog\/como-enviar-comentarios-con-jquery-ajax\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/como-enviar-comentarios-con-jquery-ajax\/#primaryimage\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/02\/como-enviar-comentarios-con-jquery-ajax.png\",\"contentUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/02\/como-enviar-comentarios-con-jquery-ajax.png\",\"width\":250,\"height\":250},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/como-enviar-comentarios-con-jquery-ajax\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.jose-aguilar.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C\u00f3mo enviar comentarios con jQuery y AJAX\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/\",\"name\":\"Jose Aguilar Blog\",\"description\":\"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\",\"name\":\"Jose Aguilar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"caption\":\"Jose Aguilar\"},\"description\":\"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.\",\"sameAs\":[\"https:\/\/plus.google.com\/114357189801512615537\"],\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C\u00f3mo enviar comentarios con jQuery y AJAX - Jose Aguilar Blog","description":"Tutorial y c\u00f3digo de ejemplo que te va a permitir crear un formulario para enviar comentarios sin recargar la p\u00e1gina utilizando jQuery, Ajax y PHP.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"es_ES","og_type":"article","og_title":"C\u00f3mo enviar comentarios con jQuery y AJAX - Jose Aguilar Blog","og_description":"Tutorial y c\u00f3digo de ejemplo que te va a permitir crear un formulario para enviar comentarios sin recargar la p\u00e1gina utilizando jQuery, Ajax y PHP.","og_url":"https:\/\/www.jose-aguilar.com\/blog\/como-enviar-comentarios-con-jquery-ajax\/","og_site_name":"Jose Aguilar Blog","article_publisher":"https:\/\/www.facebook.com\/joseaguilarblog","article_published_time":"2012-02-29T19:54:25+00:00","article_modified_time":"2019-07-19T09:33:06+00:00","og_image":[{"width":250,"height":250,"url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/02\/como-enviar-comentarios-con-jquery-ajax.png","type":"image\/png"}],"author":"Jose Aguilar","twitter_card":"summary_large_image","twitter_creator":"@JoseAguilarBlog","twitter_site":"@JoseAguilarBlog","twitter_misc":{"Escrito por":"Jose Aguilar","Tiempo de lectura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.jose-aguilar.com\/blog\/como-enviar-comentarios-con-jquery-ajax\/","url":"https:\/\/www.jose-aguilar.com\/blog\/como-enviar-comentarios-con-jquery-ajax\/","name":"C\u00f3mo enviar comentarios con jQuery y AJAX - Jose Aguilar Blog","isPartOf":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/como-enviar-comentarios-con-jquery-ajax\/#primaryimage"},"image":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/como-enviar-comentarios-con-jquery-ajax\/#primaryimage"},"thumbnailUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/02\/como-enviar-comentarios-con-jquery-ajax.png","datePublished":"2012-02-29T19:54:25+00:00","dateModified":"2019-07-19T09:33:06+00:00","author":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11"},"description":"Tutorial y c\u00f3digo de ejemplo que te va a permitir crear un formulario para enviar comentarios sin recargar la p\u00e1gina utilizando jQuery, Ajax y PHP.","breadcrumb":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/como-enviar-comentarios-con-jquery-ajax\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.jose-aguilar.com\/blog\/como-enviar-comentarios-con-jquery-ajax\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/como-enviar-comentarios-con-jquery-ajax\/#primaryimage","url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/02\/como-enviar-comentarios-con-jquery-ajax.png","contentUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/02\/como-enviar-comentarios-con-jquery-ajax.png","width":250,"height":250},{"@type":"BreadcrumbList","@id":"https:\/\/www.jose-aguilar.com\/blog\/como-enviar-comentarios-con-jquery-ajax\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.jose-aguilar.com\/blog\/"},{"@type":"ListItem","position":2,"name":"C\u00f3mo enviar comentarios con jQuery y AJAX"}]},{"@type":"WebSite","@id":"https:\/\/www.jose-aguilar.com\/blog\/#website","url":"https:\/\/www.jose-aguilar.com\/blog\/","name":"Jose Aguilar Blog","description":"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11","name":"Jose Aguilar","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","caption":"Jose Aguilar"},"description":"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.","sameAs":["https:\/\/plus.google.com\/114357189801512615537"],"url":"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/"}]}},"_links":{"self":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/1991","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/comments?post=1991"}],"version-history":[{"count":0,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/1991\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media\/7362"}],"wp:attachment":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media?parent=1991"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/categories?post=1991"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/tags?post=1991"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}