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, 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
Post a Comment