2013-03-26 2 views
0

Хорошо, чтобы все было ясно, я объясню все как можно яснее и включаю изображения. Вероятно, это будет довольно длинный вопрос, но я просто хочу, чтобы все было ясно.Загрузка данных в textarea из базы данных MySQL с помощью динамического выпадающего списка

Ну, я curently есть "текстовое поле" (TinyMCE AJAX Менеджер файлов), который отображает HTML из текстового файла, как это:

enter image description here Это код этого ату:

Bericht:</td><td align="left"><textarea name="content" cols="50" rows="15"><?php echo "$show"?></textarea></td></tr> 

а:

<?php 
if (file_exists("prwyswig.txt")){ 
$show = file_get_contents('prwysiwyg.txt'); 
} 
else{ 
$show = file_get_contents('tabel.txt'); 
} 
?> 

То, что я хочу, чтобы не использовать TextFiles больше, но я хочу, чтобы выбрать HTML-коды, которые хранятся в My База данных SQL. Я сделал динамический раскрывающийся список, который включает имена «информационных бюллетеней».

Так что я хочу, чтобы выбрать информационный бюллетень из выпадающего списка, а затем загрузить html, принадлежащий этому тилу, в текстовое поле. Я сам пробовал несколько вещей, но я просто не могу понять, как это можно сделать.

Должен ли я написать другой запрос или нет? Должен ли я помещать список dorpdown в другой форме, чтобы иметь возможность загружать данные в текстовое поле с помощью кнопки отправки?

Я выложу остальные коды и структуру таблицы ниже, потому что вам, вероятно, понадобятся они ^^ Если у вас есть другой вопрос, просто спросите их в комментариях, любая помощь будет замечательной!

Примечание: Я знаю, что не следует использовать mysql_ *, но это не проблема. Я поменю на PDO позже!

Подключение к БД + запрос, чтобы выбрать нужные данные:

<?php 
mysql_connect('localhost','root','root'); 
mysql_select_db('NAW') or die (mysql_error()); 
$strSQL  = "SELECT Content, Titel FROM NAW.Mail"; 
$sql_result  = mysql_query($strSQL); 
?> 

Динамический выпадающий список:

<td valign=top>Nieuwsbrief:</td> 
<td> 
<?php 
echo "<select name=\"show\">"; 
echo "<option size =30 selected>Select</option>"; 
if(mysql_num_rows($sql_result)) 
{ 
while($row = mysql_fetch_assoc($sql_result)) 
{ 
echo "<option>$row[Titel]</option>"; 
} 

} 
else { 
echo "<option>No Names Present</option>"; 
} 
?> 

База данных Таблица:

ID Content     Datum  Titel 
1 (lots of encoded html) 18-03-13 test 
2 (lots of encoded html) 18-03-13 test2 
4 (lots of encoded html) 18-03-13 alles weer testen 
5 (lots of encoded html) 20-03-13 testje 
6 (lots of encoded html) 21-03-13 Statusupdate week 6 
+0

декодируется или закодированные HTML? – hjpotter92

+0

[Пожалуйста, не используйте 'mysql_ *' функции] (http://stackoverflow.com/q/12859942/1190388) в новом коде. Они больше не поддерживаются и [официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). См. Красную рамку? Узнайте о подготовленных инструкциях и используйте [tag: PDO] или [tag: MySQLi]. – hjpotter92

+0

закодированный код ^^, и я знаю, что я не должен использовать mysql_ *, посмотрите на мою заметку. – Daanvn

ответ

1

Вы можете сделать это следующим образом , Ваш код HTML и PHP для вашей формы будет таким.

<?php 
mysql_connect('localhost','root','root'); 
mysql_select_db('NAW') or die (mysql_error()); 
$strSQL  = "SELECT Titel FROM NAW.Mail"; 
$sql_result  = mysql_query($strSQL); 
?> 


    <form id="myform"> 
     <td valign=top>Nieuwsbrief:</td> 
     <td> 
     <?php 
     echo "<select id=\"NieuwsbriefSelect\" name=\"show\">"; 
     echo "<option size =30 selected>Select</option>"; 
     if(mysql_num_rows($sql_result)) 
     { 
     while($row = mysql_fetch_assoc($sql_result)) 
     { 
     echo "<option value=\"$row[Titel]\">$row[Titel]</option>"; 
     } 

     } 
     else { 
     echo "<option>No Names Present</option>"; 
     } 
     ?> 

    Bericht:</td><td align="left"><textarea name="content" cols="50" rows="15"></textarea></td></tr> 

</form> 

Использования JQuery для добавления onChange события для <Select> как этого

<script> 
// variable to hold request 
var request; 
$(document).ready(function() { 

$('#NieuwsbriefSelect').change(function() { 
    //send Ajax call to get new contents 
    var selected_text = $(this).val(); 
    // setup some local variables 
    var $form = $("#myform"); 
    // let's select and cache all the fields 
    var $inputs = $form.find("input, select, button, textarea"); 
    // serialize the data in the form 
    var serializedData = $form.serialize(); 

    // fire off the request to /get_my_contents.php 
    request = $.ajax({ 
    url: "/get_my_contents.php", 
    type: "post", 
    data: serializedData 
    }); 


    // callback handler that will be called on success 
    request.done(function (response, textStatus, jqXHR){ 
    //populate the TextArea 
    $("textarea[name='content']").html(response); 
    }); 


}); 

}); 
</script> 

И, наконец, ваш get_my_contents.php будет так

<?php 
$title = $_POST["show"]; 
mysql_connect('localhost','root','root'); 
mysql_select_db('NAW') or die (mysql_error()); 
$strSQL  = "SELECT Content from NAW.Mail where Titel = '$title' "; 
$sql_result  = mysql_query($strSQL); 

$row = mysql_fetch_assoc($sql_result) 
print $row["Content"]; 
?> 

Надеется, что это позволит решить проблему ,

EDIT Вы можете попробовать эту скрипку (Только на стороне клиента код, Ajax не будет работать) http://jsfiddle.net/jjWdF/

+0

Thnx, я попробую его, как только смогу, но я заговорю на несколько минут, поэтому, вероятно, я смогу попробовать его tommorow! – Daanvn

+0

Я просто попытался использовать это, но он, похоже, не работает. Выпадающий список все еще работает нормально, но когда я выбираю что-то, ничего не происходит. Он не дает никаких ошибок, он просто ничего не делает. Мои усилия, чтобы заставить его работать, пока не работают, так как я не знаком с JQuery. Может быть, это вариант, который вы можете посмотреть на весь мой код? – Daanvn

+0

Я предполагаю, что вы добавили файл 'get_my_contents.php' на свой сервер. Поставьте предупреждение в 'request.done' и проверьте, не уволен ли он или нет. Конечно, я могу помочь вам в этой части вашего кода. –

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