2013-07-11 3 views
0

У меня есть текстовое поле с двумя кнопками. Одна кнопка будет просматривать текст, который я ввел, а другой отправляет текст на сервер. Вот мой код:set PHP-сессия без формы submit

<?php 
session_start(); 
$_SESSION['ShortDescription']=''; 
if(isset($_POST['Submit'])) 
{...} 
?> 

<form name="news" action="add_news.php" method="post"> 
<textarea rows="5" name="ShortDescription" id="ShortDescription"></textarea>&nbsp 
<input type="button" name="Preview" value="Preview Description"> 
<input type="submit" name="Submit" value="Submit"> 
</form> 

Я новичок в PHP и JavaScript. Я знаю, что проблема может быть решена с помощью AJAX. Однако я очень новичок в AJAX. Кто-нибудь может мне помочь?

+0

Какой результат вы ожидаете? – jtomaszk

+0

Когда я нажимаю кнопку предварительного просмотра, $ _SESSION ['ShortDescription'] = $ _ POST ['ShortDescription']. – user1703325

ответ

0

Как я понимаю, вы начинаете сеанс, а затем вы хотите создать переменную $ _SESSION, основанную на том, что кто-то вводит в текстовой области. Предполагая, что вы не хотите, чтобы страница менялась, когда пользователь нажимает предварительный просмотр (но вы хотите использовать переменную $ _SESSION в будущих ситуациях), вам нужно использовать что-то вроде AJAX (как вы упомянули). Самый простой способ найти что-то вроде этого - использовать jQuery и AJAX вместе.

В принципе, вы создадите функцию JavaScript (используя jQuery) для выбора при каждом нажатии кнопки предварительного просмотра. Это будет выглядеть примерно так. Сначала мы добавим идентификатор в пределах входного тега ...

<input type="button" id="previewID" name="Preview" value="Preview Description"> 

Далее мы создаем функцию в файле яваскрипта ...

$('#previewID').click(function() { 
    request = $.ajax({ 
    url: "/form.php", 
    type: "post", 
    data: serializedData 
    }); 
}); 

form.php может быть просто форма, которая проверяет, если $ _POST ['ShortDescription'] существует, если это так, дезинфицируйте его и сохраните в $ _SESSION ['ShortDescription']. «SerializedData» - это просто содержимое передаваемой текстовой области. (Который на самом деле просто передавая содержимое переменной по URL. Например, если SHORTDESCRIPTION = «HelloThere», Сериализованный данные будут «ShortDescription=HelloThere», который добавляет к URL, как ...

«www.website.com/form.php?ShortDescription=HelloThere»

Имейте в виду, что вы не обычно вручную установить это, хотя, это было просто, чтобы показать концепцию использовать что-то вроде:..

var serializedData = $form.serialize(); 

View this question for an example AJAX request

Отказ от ответственности: Там может быть Бетт это способ сделать это, но я решил, что предлагаю одну возможность, так как никто еще не ответил!

+0

Спасибо за помощь. Ваш ответ предназначен только для текстового поля, поэтому как насчет двух или трех текстовых полей? – user1703325

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