2011-12-15 2 views
1

У меня что-то странное случается.Разрыв строки внутри текстового поля

Мой сценарий предназначен для редактирования информации. Когда я отправляю $ _POST из своего текстового поля на свою страницу php. Он санирует и вставляет правильно, но я также хочу повторно вывести данные, если их снова вызвали. Поэтому я использую jquery $ post для отправки и получения информации.

Все работает отлично, за исключением случаев, когда я вызываю информацию с помощью кнопки редактирования и функции «onmousedown», это не дает мне правильный формат для моих параметров.

Если я пишу только на одной строке, он получается идеально, но если я использую несколько строк, он не сохранит разрывы строк, и он отбивает закрытие «», чтобы функция не могла быть сброшена. Есть идеи? Вот мой эхо-сигнал обратного вызова. Заранее спасибо ...

Проблема заключается в параметре «$ againList» ...

$againList = $_POST['updated_songList']; // I am sending back the exact same data that was given without filter... 
echo '<span><h4 style="margin-bottom:0px; font-size:14px;">'.$full_birthday.' 
    <a href="#" onclick="deleteSongList('.$songid.');" style="color:gray; float:right; font-weight:100; font-size:12px;">delete</a> 
    <a href="#" onclick="return false" onmousedown="editSongList(\''.$songid.'\', \''.$againList.'\');" style="margin-right:5px; color:gray; float:right; font-weight:100; font-size:12px;">edit</a></h4>'.$song_list.'<br /></span>'; 

Если вам нужно что-нибудь еще, дайте мне знать. Благодаря!

ответ

1

Хорошо, поэтому я понял это и получил его. Спасибо всем за помощь!

Проблема заключается в том, что вы должны по крайней мере добавить функцию «stripslashes» в $ _POST, прежде чем вы сможете поместить ее в параметр javascript, иначе мне кажется, что каждый «\ n» останавливает вызов функции и дать сообщение об ошибке «есть неисчерпаемый строковый литерал», то есть ваш последний параметр не имеет «» в конце его. Однако я не знаю, почему. Если у кого-нибудь есть понимание, я был бы признателен за опыт обучения.

Спасибо всем!

+0

Я предполагаю, что у вас есть [волшебные цитаты] (http://www.php.net/manual/en/security.magicquotes.php). «Когда включено, все (одиночная кавычка)», «двойная кавычка», «\» (обратная косая черта) и «NULL», автоматически сбрасываются с помощью обратного слэша. Это то же самое, что делает функция addslashes() ». ** Я настоятельно рекомендую отключить магические цитаты. ** – Herbert

+0

@Herbert Как это сделать? –

+0

Читать [Отключение магических цитат] (http://www.php.net /manual/en/security.magicquotes.disabling.php) – Herbert

0

Попробуйте это:

$againList = nl2br($_POST['updated_songList']); 

В принципе, все TextArea перевода строки "\ п", которые HTML не показывают. nl2br() только преобразует их в <br/> при их отображении. Новинка остается неповрежденной.

Для сценария, который удаляет «» с конца, если вы не показываете этот скрипт, вам не помогут.

1

Хмм, php имеет функцию nl2br(), которая преобразует новую строку в разрывы, но я не уверен, что это то, что вам нужно. Разрывы строк исчезают до или после того, как они приходят к скрипту php?

Вот как использовать nl2br();

$var = nl2br($_POST['myValue']); 
+0

После. Кроме того, вы правы, я не ищу nl2br, мне нужно сохранить/n, когда я его перезвоню. –

+0

Eeek, почему downvote? – span

+0

Я не проголосовал –

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