Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2012, 02:23   #1
zalza
Пользователь
 
Регистрация: 09.02.2010
Сообщений: 26
По умолчанию Проблема с получением значения текстового поля

Здравствуйте. На главной странице есть текстовое поле, кнопка и скрипт onClick'a этой кнопки, который вызывает на обработку php скрипт, находящийся в файле tasks.php, который в свою очередь должен добавлять в бд строку, в одно из полей которой должен попасть текст из текстового поля на этой странице.
Кнопка и поле:
Код HTML:
 <input type="search" placeholder="Start typing here to create a task..." name="TextField1 "id="TextField1" tabindex="1"
                style="height:29px; width:528px; background-color:#FFF;"/>
<input type="image" src="AddTaskButton.png" name="AddTask" id="AddTask" style="height:28px; width:104px;"/>
JavaScript:
Код HTML:
                <script type="text/javascript">
                    $(document).ready(function()
                    {
                        $('#AddTask').click(function()
                        {
                            $.ajax(
                            {
                                url: "tasks.php",  
                                cache: false,
                                success: function(html)
                                {
                                    alert(html);
                                    return;                                    
                                }
                            });
                        });
                    });
                </script>
tasks.php:
PHP код:
<?
    session_start
();
    if (empty(
$_SESSION['login']) or empty($_SESSION['id']))
    {
        echo (
"You must login firs");
    }
    else
    {
        if(isset(
$_POST['TextField1']))
        {
            
$name $_POST['TextField1']
            
$login $_SESSION['login'];
            include(
'connect.php');
            
$result mysql_query("SELECT * FROM users WHERE login='$login'",$db);
            
$myrow mysql_fetch_array($result);
            
$user_id $myrow['id'];
            
mysql_query("INSERT INTO tasks (tasks.name, tasks.user_id) VALUES ('$name', '$user_id')");
        }
        else
        {
            echo (
"The field is empty");
        }
    }
?>
Проблема в том, что на вход всегда приходит пустая строка
PHP код:
        if(isset($_POST['TextField1']))
        {
            
$name $_POST['TextField1'
не зависимо от того, был ли введен текст в поле. Видно это по тому, что в бд добавляется запись с пустым полем 'name'. Из-за чего может быть такое?
zalza вне форума Ответить с цитированием
Старый 26.11.2012, 08:06   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

так ничего ж не передаете в обработчике JS на JQuery
насколько мне известно нужно указывать тип метода POST если им передаете... опять же нужно знать - откуда его брать, а у вас - не указано откуда
ADSoft на форуме Ответить с цитированием
Старый 26.11.2012, 08:11   #3
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

Код:
                <script type="text/javascript">
                    $(document).ready(function()
                    {
                        $('#AddTask').click(function()
                        {
                            var s = $(this).attr("value");
                            var dataString = 'TextField1='+ s ;
                            $.ajax(
                            {
                                url: "tasks.php",
                                type: "POST",  
                                cache: false,
                                data: dataString,
                                success: function(html)
                                {
                                    alert(html);
                                    return;                                    
                                }
                            });
                        });
                    });
                </script>
ADSoft на форуме Ответить с цитированием
Старый 26.11.2012, 13:27   #4
zalza
Пользователь
 
Регистрация: 09.02.2010
Сообщений: 26
По умолчанию

Всеравно не работает.
zalza вне форума Ответить с цитированием
Старый 26.11.2012, 13:32   #5
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

я не проверял .. дал пищу к размышлению.... подумайте немного
Код:
 var s = $(this).attr("value");
тут вот явно не this ... а конкр #ид надо использовать .... гугл и яндекс вам в помощь
ADSoft на форуме Ответить с цитированием
Старый 26.11.2012, 14:05   #6
zalza
Пользователь
 
Регистрация: 09.02.2010
Сообщений: 26
По умолчанию

Вот, что нашел на jquerybook.ru:
attr ( name ) - получает значение атрибута
Селектор #id -Выбирает элемент с указанным идентификатором (атрибутом id).
Ну по идее должно быть так
PHP код:
var = $("#TextField1").attr("value"); 
Но всеравно не работает.
zalza вне форума Ответить с цитированием
Старый 26.11.2012, 14:11   #7
masax
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 248
По умолчанию

попробуй
$("#TextField1")[0].value

если через jQuery, то используют
$(...).val()

$(this) в данном контексте внутри функции тоже норм работает
Контакты
skype, почта: bm@kwax.ru

Последний раз редактировалось masax; 26.11.2012 в 14:13.
masax вне форума Ответить с цитированием
Старый 26.11.2012, 14:15   #8
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
name="TextField1 "id="TextField1"
Цитата:
name="TextField1" id="TextField1"
PHP код:
var = $("#TextField1").val(); 
PS:
Цитата:
Сообщение от masax Посмотреть сообщение
$(this) в данном контексте внутри функции тоже норм работает
Ага, только ссылается не на тот элемент – на кнопку, а не на текстовое поле.

Последний раз редактировалось Andkorol; 26.11.2012 в 14:18. Причина: PS
Andkorol вне форума Ответить с цитированием
Старый 26.11.2012, 14:16   #9
zalza
Пользователь
 
Регистрация: 09.02.2010
Сообщений: 26
По умолчанию

Все предложеные выше варианты работают, но всегда передается пустая строка.
zalza вне форума Ответить с цитированием
Старый 26.11.2012, 14:19   #10
zalza
Пользователь
 
Регистрация: 09.02.2010
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
PHP код:
var = $("#TextField1").val(); 
Да, в конце имени есть пробел, сам только увидел когда Вы написали, но все же, я обращаюсь к элементу с выбраным id а не name. Если не прав, поправте.
zalza вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с получением страницы shvabrin Работа с сетью в Delphi 1 28.11.2011 22:49
Проблема с получением диапазона Simbad Microsoft Office Excel 6 26.11.2011 10:49
Нахождение max значения текстового поля IraPr Microsoft Office Access 5 01.02.2011 22:55
Проблема с получением имени zumm Общие вопросы Delphi 3 14.05.2010 13:06
как получить значение поля грид на основе значения другого lookUp поля malayka БД в Delphi 0 21.04.2010 19:06