2013-06-05 2 views
0

Я создаю текстовое поле, где текст будет автоматически обновляться в mysql после пользовательского типа и без submit.Problem теперь это текстовое поле, которое не обновляет базу данных. Это то, что я отредактировал, ссылаясь на все мнения ниже. У вас все еще есть проблемы, но лучше, чем ничего не отображается сейчас.Обновление текстового поля с помощью jQuery

здесь вход текстовое поле

echo "<td class=\"align-center\"><input type=\"text\" name=\"comment\" id=\"comment\" onKeyPress=\"getComment($id,this)\" /></td>"; 

здесь мой Javascript

function getComment(id, txt_box) 
{ 
var value = txt_box.value; 

    $.ajax({ 
     'url': 'updatecomment.php', 
     'data': {"id": id, "comment": value}, 
     'success': function (response) { 
      console.log(response); 
      //TODO: use server response 
     } 
    }); 
} 

и последнее updatecomment.php

<?php require_once("../includes/connection.php") ?> 
<?php require_once("../includes/functions.php") ?> 

<?php 
    $id =$_GET['id']; 
    $comment = $_GET['comment']; 


    $query = "UPDATE tblinternapplication SET comment = '".mysql_real_escape_string($comment) ."' WHERE id = $id"; 
    $result = mysql_query($query, $connection); 
?> 
+2

* Sidenote: * прекратить использование устаревший 'mysql_ *' функции. вместо этого используйте MySQLi или PDO. – Raptor

+0

Двойной quot '' 'отсутствует для' $ query = "...' –

ответ

1

Ниже код

echo "<td class=\"align-center\"><input type=\"text\" name=\"comment\" id=\"comment\" onPressKey=\"getComment($id,this.id)\" required/></td>"; 

Изменить это

echo "<td class=\"align-center\"><input type=\"text\" name=\"comment\" id=\"comment\" onKeyup=\"getComment('$id',this.value)\" required/></td>"; 

В основном, когда вы передаете значения для функции JavaScript Если значение, которое вы Пасс string или integer, а не переменная, заключают их в одну цитату, такую ​​как getComment (' $ ID», это.значение)

И еще одно изменение, которое я добавил, это onKeyup вместо onKeyPress. Это связано с тем, что onKeyPress произойдет событие , когда клавиша нажата, и функция, которую вы назвали , не будет иметь последнего символа, введенного вами в. В то время как OnKeyPress события будет срабатывает при отпускании ключа т.е. после ввода символа, так что вы получите все символы, введенные в текстовом поле

аналогичны в Mysql запросе всегда заключать значения в одиночных кавычках, как следующее

 $query = "UPDATE tblinternapplication SET comment = '".mysql_real_escape_string($comment) ."' WHERE id = '$id'"; 

Надеюсь, вы понимаете эти изменения

+0

спасибо, что ваш метод правильно доставляет слова. Спасибо большое! – user2359110

+0

Это нехорошо .... Я дал первый и тот же контент, который я дал в моем а ... и ваш принятый анс - 36 минут после всех наших а ... как вы можете это сделать. my ans и удалил его и дал этому, который на 36 минут опоздал на все наши ans – Gautam3164

+0

@Gautam, где вы правильно, но при использовании onKeyPress вы не получите всех символов в текстовом поле, так как событие будет срабатывать еще до того, как пользователь вводит символ – Lepanto

0
echo "<td class=\"align-center\"><input type=\"text\" name=\"comment\" id=\"comment\" onPressKey=\"getComment($id,this.id)\" required/></td>"; 

должен быть

echo "<td class=\"align-center\"><input type=\"text\" name=\"comment\" id=\"comment\" onkeypress=\"getComment($id,this.id)\" required/></td>"; 
+0

попытался, но все еще нет обновлений в базе данных – user2359110

1

У вашего запроса несколько ошибок. Оно должно быть:

$query = "UPDATE tblinternapplication SET comment = '".mysql_real_escape_string($comment) ."' WHERE id = $id"; 

в то время как mysql_* не должны использоваться, поскольку они являются устаревшими. вместо этого используйте MySQLi или PDO. Следите за SQL Injection тоже.

+0

спасибо даже может обновить сейчас, но он возвращает слово comment – user2359110

+0

, пожалуйста, примите ответ, если вы сочтете это полезным. спасибо – Raptor

1

Попробуйте заменить

echo "<td class=\"align-center\"><input type=\"text\" name=\"comment\" id=\"comment\" onPressKey=\"getComment($id,this.id)\" required/></td>"; 

с

echo "<td class=\"align-center\"><input type=\"text\" name=\"comment\" id=\"comment\" onKeyPress=\"getComment($id,this.value)\" required/></td>"; 

EDIT:

echo "<td class=\"align-center\"><input type=\"text\" name=\"comment\" id=\"comment\" onKeyPress=\"getComment($id,this)\" required/></td>"; 

И в вашей функции захватить значение как

function getComment(txt_box, comment) { 
    var value = txt_box.value; 
} 

Вы должны послать значение текстового поля не раз идентификатор и попытаться обновить запрос на обновление, как

$query = "UPDATE tblinternapplication 
      SET comment = ".mysql_real_escape_string($comment) ." 
      WHERE id = $id"; 

Здесь $ ID представляет собой целое число на dyou пропустили закрытие " на last.And попробовать использовать mysqli_ * заявления или PDO отчетность вместо mysql_ * заявления в связи с их устаревшими

и главное убедитесь, что комментарий столбец базы данных должен быть тип данных текст в соответствии с вашим комментарием

+0

Какова причина его downvote .. ?? – Gautam3164

+2

Является ли какое-либо событие наподобие onPressKey – Dineshkani

+0

Thanku @Dineshkani Я его обновил .... Я даже не считал это событие .... Извините за это – Gautam3164

1
echo "<td class=\"align-center\"><input type=\"text\" name=\"comment\" id=\"comment\" onKeyPress=\"javascript: return getComment($id,this.value);\" required/></td>"; 

используется onPressKey вместо onKeyPress

Смежные вопросы