php показывает данные в текстовой области после нажатия на ссылку - PullRequest
0 голосов
/ 11 августа 2010

Как я могу отображать данные в текстовой области после нажатия на ссылку?Эти данные сохраняются в базе данных.

Я пытаюсь динамически создать ссылку для поля «дата».Если пользователь нажимает на ссылку, остальные данные за эту дату должны быть показаны в текстовой области.

Я перебираю свои данные следующим образом:

foreach($data as $key)
{
    echo '<a href="/"' . $key->test . '>' . $key->date. '</a>';
    echo '<br />';
}

Я не знаюто, что я должен поместить в 'href'.

Итак, чтобы быть ясным, на левой стороне у меня есть несколько ссылок, которые представляют даты.На правой стороне я хочу отобразить текстовую область, которая будет содержать оставшиеся данные.

Как это можно сделать?

Ответы [ 3 ]

2 голосов
/ 11 августа 2010

Смотри рабочую демонстрацию здесь.

Измените ваш цикл следующим образом:

foreach($data as $key)
{
    echo '<a class="link" href="#"' . $key->test . '>' . $key->date. '</a>';
    echo '<br />';
}

И тогда вы можете использовать этот код jQuery:

$(function(){
  $('a.link').live('click', function(){
    $('#textarea_id').val($(this).text());
    return false;
  });
});

Где textarea_id' - это идентификатор вашей текстовой области, в которой вы хотите обновить значения ссылок, например:

<textarea id="textarea_id">............

Обновление:

Чтобы добавить вышеуказанный скрипт, поместите этот код между тегами <head></head>, например:

<head>
<script type="text/javascrpt" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" ></script>
<script type="text/javascrpt">
    $(function(){
      $('a.link').live('click', function(){
        $('#textarea_id').val($(this).text());
        return false;
      });
    });
</script>
</head>
0 голосов
/ 11 августа 2010

2 способа: динамический и нединамический (обычный).Начнем со второго.

Когда кто-то нажимает на ссылку, он перенаправляет его в ваш файл PHP.Давайте рассмотрим пример:


//in HTML
<a href="index.php?action=getcontent&date=03022010" id="d03022010">Show details for date 03.02.2010</a>
//and so on..

//PHP
if($_GET['action'] == "getcontent"){
  $date = $_GET['date'];
  //connect to DB and retrieve data to e.g. $result
}

//your textarea
<textarea><?php echo $result; ?></textarea>

Динамически вы должны использовать Javascript (или некоторые библиотеки Javascript, например, jQuery) для загрузки данных после того, как пользователь щелкнет ссылку и обновит элемент textarea.Пример jQuery (я не проверял ...)


//HTML head section
<script type=text/javascript>
  $('#d03022010').click(function(e){
    $.ajax({
      type: 'POST',
      url: 'url/to/php',
      data: {date: 'your_data'},
      dataType: 'text', //or html or json
      success: function(result){ $(textarea).text(result)}
    });
  });
</script>

Надеюсь, это полезно.

0 голосов
/ 11 августа 2010

Если вы можете использовать jQuery, вы можете сделать что-то вроде:

$('a.dates').click(function(event) {
    event.preventDefault(); // prevents link from reloading page
    $('input#date').val($(this).attr('title'));
})

<?php
    foreach($data as $key)
    {
        echo '<a class="dates" title="$key->date" href="">' . $key->date. '</a>';
        echo '<br />';
    }
?>

<input id="date" value="" name="date" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...