Jump to content
php.lv forumi

Problēma ar AJAX formu un nl2br()


Friiks

Recommended Posts

Sveiki!

 

Apnika man visur drukāt angliski un gribēju redzēt php.lv forumu...

 

Katrā gadījumā problēma ir nekas nopietns - vairāk apnicīgs.

Nesen tikai sāku darboties ar JS..pareizāk AJAX lietām bez prototype un sanāca man forma komentāriem ko darbina AJAX.

Kad kautko iepostoju viss darbojas brīnišķīgi, bet, ka ārā echo'jot pie mainīgā pielieku nl2br(), kas parasti tekstu sadalītu smuki pa rindiņām vietās kur nospiests <Enter> .. tagad funckija vienkārši, šķiet, nestrādā.

 

Fails, kas saņem tekstu no formas izskatās aptuveni šādi:

<?php
//db konfigurācija

$var = mysql_real_escape_string(htmlspecialchars($_GET['teksts']));

if(!empty($var)){
//ieliek datubāzē
}

?>

 

Un pie datubāzes lauka izvades šādi:

<?php
//blaa blaa

$var = mysql_query("SELECT `text` FROM `comments` ORDER BY `id` DESC") or die(mysql_error());

while($r = mysql_fetch_array($var)){
echo stripslashes(nl2br($r['text']))."<br />"; //<br> beigās, lai nenoformētie dati būtu katrs jaunā rindiņā
} 
?>

 

JS ir šāds:

<script type="text/javascript">
<!--
function initialize_request ()
{
try {request = new XMLHttpRequest();}
catch (error) {request = new ActiveXObject("Microsoft.XMLHTTP");}
}


function load_data(){
initialize_request();

request.open("GET","fails.php?act=get_posts",true);
request.send(null);


request.onreadystatechange=function(){

if (request.readyState != 4) {
document.getElementById('messages').innerHTML = "Lādējas...";
}

if (request.readyState == 4) {
document.getElementById('messages').innerHTML = request.responseText;
}

}

}

-->
</script>

 

Vienīgais, kas man iešāvās tagad prātā ir tas, ka varbūt JS nojauc to nl2br() ?

Katrā gadījumā esmu diezgan apjucis :P

Link to comment
Share on other sites

Neizmantojot AJAX, tas skripts atgriež tekstu ar <br> elementiem ?

 

Un ja ar AJAX, kā tas izskatās iekš DOM (paskaties ar Firebug)?

 

PS. Kam tev tas stripslashes() ?

 

PS2. Ar AJAX tehnoloģiju var veikt arī POST pieprasījumus. Un iespējams, ka vaina ir tieši tur, ka izmanto GET.

Edited by andrisp
Link to comment
Share on other sites

Hmm, paskatījos phpmyadmin un sapratu, ka jau tur ievietotais teksts ir bez \n.

Tātad problēma ir pirms ielikšanas DB.

Un jā, cenntos ar $_POST ielikt, bet atgriza tikai tukšus rezultātus.

Reku kods ko lietoju, lai postotu..

function post(form,the_id){
initialize_request();

var text = form.comment.value;

request.open("POST", "fails.php?act=add_comment&text="+text+"&id="+the_id, true);
request.send(null);

request.onreadystatechange = load_data();
}

Link to comment
Share on other sites

×
×
  • Create New...