Получить значение textarea, используя PHP / jQuery - PullRequest
2 голосов
/ 03 января 2012

Я часами искал, как это отсортировать, и я на грани плача, поэтому подумал, что пора бы получить некоторую помощь.Это должно быть легко, но я явно что-то упускаю.

Я хочу получить текст из текстовой области, затем я выполню обновление MySQL с текстом текстовой области.Я использую PHP и jQuery.

Обычно я бы использовал $ _post в php, однако я использую jQuery для отображения модального всплывающего окна.Я хочу, чтобы выполнялся код обновления MySQL, а затем модальное всплывающее окно отобразит текст с надписью «Сохранено».Просто.

Весь код работает нормально, за исключением того, что я не могу получить текст.Очевидно, что это очень важно.

Итак, как мне получить текст из текстовой области?

Форма:

<form name = "editProfile">
<textarea rows="2" cols="20" name="bio" id="bio">
Some text.
</textarea>
</form>

PhpКод

<?php
$bio = TEXT FROM TEXTAREA;

$sql="Update members SET bio = '$bio' WHERE memberID='$memberID'";
$result=mysql_query($sql);
echo ("Profile Update Sucesful");
?>

Этот бит bio.text - это то, как вы делаете это в asp.net ....

В приведенной выше форме не используется метод / действие,на самом деле, вероятно, нет необходимости в тегах «form», так как мне нужна только текстовая область.Модал запускается по ссылке.

Пожалуйста, помогите (и, пожалуйста, будьте терпеливы со мной).Если вам нужна дополнительная информация, дайте мне знать.Не кричи.Я новичок в этом.

Ответы [ 3 ]

2 голосов
/ 03 января 2012

Чтобы получить текст из текстовой области в jquery, я всегда использую следующее:

<textarea id="textareaOfInterest">some value</textarea>
<script>
   $('#textareaOfInterest').val();
</script>

Остальная часть вашего кода должна выглядеть примерно так:

<textarea id="textareaOfInterest">some value</textarea>
<input type='button' id="doStuff" value="do" />
<script>
   $('#doStuff').live('click',function(){
      show modal window
      var val = $('#textareaOfInterest').val();
      $.ajax({
        ....
      data: "&textArea="+val,
      success: function(result)
              {
            ... do stuff with the result....

                 hide modal window
                }
      });

});
</script>

искать примеры сJQuery AJAX, потому что я не знаю синтаксис наизусть.

Надеюсь, что это помогает, с уважением, Алекс

0 голосов
/ 03 января 2012

Сделайте AJAX-вызов из вашей формы:

<!-- #dialog is the id of a DIV defined in the code below -->
<a href="#dialog" name="modal">Simple Modal Window</a>

<div id="boxes"> 

    <!-- #customize your modal window here --> 
    <div id="dialog" class="window">
       <textarea rows="2" cols="20" name="bio" id="bio">
           Some text.
       </textarea>
       <input id="saveTxt" type="submit" value="Save" />

       <!-- close button is defined as close class -->
       <a href="#" class="close">Close it</a>

    </div>

    <!-- Do not remove div#mask, because you'll need it to fill the whole screen --> 
    <div id="mask"></div>
</div>

И как ваш Javascript:

<script>

$(document).ready(function() {  

    //select all the a tag with name equal to modal
    $('a[name=modal]').click(function(e) {
        //Cancel the link behavior
        e.preventDefault();
        //Get the A tag
        var id = $(this).attr('href');

        //Get the screen height and width
        var maskHeight = $(document).height();
        var maskWidth = $(window).width();

        //Set height and width to mask to fill up the whole screen
        $('#mask').css({'width':maskWidth,'height':maskHeight});

        //transition effect     
        $('#mask').fadeIn(1000);    
        $('#mask').fadeTo("slow",0.8);  

        //Get the window height and width
        var winH = $(window).height();
        var winW = $(window).width();

        //Set the popup window to center
        $(id).css('top',  winH/2-$(id).height()/2);
        $(id).css('left', winW/2-$(id).width()/2);

        //transition effect
        $(id).fadeIn(2000); 

    });

    //if close button is clicked
    $('.window .close').click(function (e) {
        //Cancel the link behavior
        e.preventDefault();
        $('#mask, .window').hide();
    });     

    //if mask is clicked
    $('#mask').click(function () {
        $(this).hide();
        $('.window').hide();
    });   

    //if submit is clicked
    $('input#saveTxt').click(function(event) {
       event.preventDefault();

       //Get the text from your textarea
       var text = $('textarea#bio').val();

       //Post it to your PHP page to insert it into your database
       $.ajax({
          url: "yourpage.php",                  //The URL you are posting to
          type: "POST",                         //The way you post your data
          dataType: "html",                     //The type of data you expect to get back
          data: {text : text},                  //Your data (thus the value of your textarea)
          cache: false,
          success: function(html) {             //After the AJAX call was done, update the textarea with the HTML you got back
             $('textarea#bio').val(html);
          }
       });
   });      

});

</script>

В yourpage.php (это страница, которую выотправляете свои данные на) вы можете просто получить их:

<?php
   $bio = mysql_real_escape_string($_POST['text']);

   //do your query
   $sql = "Update members SET bio = '$bio' WHERE memberID='$memberID'";
   $result = mysql_query($sql);
   echo ("Profile Update Sucesful");
?>
0 голосов
/ 03 января 2012
 $bio = $_GET['bio']; /* or $_POST if your send data with jQuery $.POST */

- это то, что вам нужно для загрузки значения текстовой области

обратите внимание, что вы должны в любом случае указать метод отправки в вашей форме и, ради безопасности приложения, отправить какой-то скрытыйтокен против запроса CSRF, и перед любой манипуляцией данными (например, вставкой базы данных) вы должны серьезно санировать каждый полученный вами ввод

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...