Problems returning data from PHP to JQuery using AJAX -


i trying commenting system jquery, ajax , php. able store comments on database, having problems when want show them database. believe doing wrong when reading data send .php file in json format.

here code using.

index.html

<form id="form" method="post">     name: <input type="text" name="name" id="name">     comment: <textarea rows="5" cols="115" id="text"></textarea>     <input type="submit" id="submit" value="submit"> </form> 

events.js

$('#form').on("click",'#submit',function(){     var name = $("#name").val();     var text = $("#text").val();     var datastring = 'name='+ name + '&text=' + text;      $.ajax({         url:'comments.php',         type:'post',         cache: false,         data: datastring,         success: function(data){             alert("success");               $(".comment-block").append(data);                },         error:function(){             alert("failure");         }     }); 

comments.php

<?php  $name=$_post['name']; $text=$_post['text'];  $conexion=mysql_connect("localhost","user","pass"); mysql_select_db("db_1",$conexion);  mysql_query("insert comments (name,text) values ('$name','$text')");  $sql=mysql_query("select * comments");  $data=array(); $i=0;  while ($row=mysql_fetch_array($sql)) {      $data[$i]["name"]=$row[name];     $data[$i]["texr"]=$row[text];     $i++; }  echo json_encode($data)  ?> 

try changing

$data[$i]["name"]=$row[name]; $data[$i]["texr"]=$row[text]; 

for

$data[$i]["name"]=$row['name']; $data[$i]["text"]=$row['text']; 

and mentioned on other solutions , jquery api pass post data object better formatted string:

data type: plainobject or string data sent server. converted query string, if not string. it's appended url get-requests. see processdata option prevent automatic processing. object must key/value pairs. if value array, jquery serializes multiple values same key based on value of traditional setting (described below).

also, use pdo or mysqli

also, set

contenttype: "application/x-www-form-urlencoded;charset=utf-8", 

or proper charset on $.ajax parameter if necessary (and urldecode appropriately).

and don't forget validate , sanitize data (filter input may starting point).

jquery perform intelligent guess it's not necessary set datatype or json decode response on success mentioned, can anyways clarity. jquery api again:

datatype (default: intelligent guess (xml, json, script, or html))


Comments

Popular posts from this blog

windows - Single EXE to Install Python Standalone Executable for Easy Distribution -

c# - Access objects in UserControl from MainWindow in WPF -

javascript - How to name a jQuery function to make a browser's back button work? -