Спустя 9 минут, 21 секунда (14.10.2010 - 13:26) arvitaly написал(а):
Цитата |
то скрипт принимает ее за пустую переменную, а мне это не надо, т.к. стоИт проверка на пустые поля. |
покажите вот эту часть
Спустя 4 минуты, 18 секунд (14.10.2010 - 13:30) ekabolotina написал(а):
Код JS:
Код PHP:
function getXmlHttp(){
var xmlhttp;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function vote() {
var req = getXmlHttp()
var statusElem = document.getElementById('status')
req.onreadystatechange = function() {
if (req.readyState == 4) {
if(req.status == 200) {
statusElem.innerHTML = req.responseText;
}
}
}
var title = document.add.title.value;
var sel = document.add.sel.value;
var content = document.add.content.value;
var fullcontent = document.add.fullcontent.value;
var who = document.add.who.value;
req.open("GET", "add.php?"+"title="+title+"&sel="+sel+"&content="+content+"&fullcontent="+fullcontent+"&who="+who, true);
req.send(null);
statusElem.innerHTML = 'в процессе.';
}
Код PHP:
<?php
$title = iconv('UTF-8', 'windows-1251', $_GET['title']); $sel = iconv('UTF-8', 'windows-1251', $_GET['sel']); $content = iconv('UTF-8', 'windows-1251', $_GET['content']); $fullcontent = iconv('UTF-8', 'windows-1251', $_GET['fullcontent']); $who = iconv('UTF-8', 'windows-1251', $_GET['who']);
$login = iconv('UTF-8', 'windows-1251', $_GET['login']);
if (empty($title)){echo '<div style="color:red;">'.iconv('windows-1251', 'UTF-8', 'Введите заголовок!').'</div>';}else{
if (empty($sel)){echo '<div style="color:red;">'.iconv('windows-1251', 'UTF-8', 'Выберите категорию!').'</div>';}else{
if (empty($content)){echo '<div style="color:red;">'.iconv('windows-1251', 'UTF-8', 'Краткое содержание пусто!').'</div>';}else{
if (empty($fullcontent)){echo '<div style="color:red;">'.iconv('windows-1251', 'UTF-8', 'Подробное содержание пусто!').'</div>';}else{
if (empty($who)){echo '<div style="color:red;">'.iconv('windows-1251', 'UTF-8', 'Выберите вариант отображения Вашей новости!').'</div>';}else{ ..................................
Спустя 11 минут, 8 секунд (14.10.2010 - 13:41) arvitaly написал(а):
С виду все в порядке (ну по сабжу ессно).
Т.е. если передать
'abvcыщхз' в title
после этой строки
что мы видим?
Т.е. если передать
'abvcыщхз' в title
$title = iconv('UTF-8', 'windows-1251', $_GET['title']);
после этой строки
echo 'title=«' . $title . '»';
что мы видим?
Спустя 21 минута (14.10.2010 - 14:02) ekabolotina написал(а):
данная проблема обнаружилась в IE и Google Chrome и видим мы
title="abvc", только латиница
title="abvc", только латиница
Спустя 2 минуты, 49 секунд (14.10.2010 - 14:05) arvitaly написал(а):
Давайте html тоже
Спустя 7 минут, 2 секунды (14.10.2010 - 14:12) arvitaly написал(а):
И кстати, вот это
можно заменить на это
if (empty($title)){echo '<div style="color:red;">'.iconv('windows-1251', 'UTF-8', 'Введите заголовок!').'</div>';}else{
if (empty($sel)){echo '<div style="color:red;">'.iconv('windows-1251', 'UTF-8', 'Выберите категорию!').'</div>';}else{
if (empty($content)){echo '<div style="color:red;">'.iconv('windows-1251', 'UTF-8', 'Краткое содержание пусто!').'</div>';}else{
if (empty($fullcontent)){echo '<div style="color:red;">'.iconv('windows-1251', 'UTF-8', 'Подробное содержание пусто!').'</div>';}else{
if (empty($who)){echo '<div style="color:red;">'.iconv('windows-1251', 'UTF-8', 'Выберите вариант отображения Вашей новости!').'</div>';}else{ ..................................
можно заменить на это
<?php
try
{
if ( !$title )
{
throw new Exception( 'Введите заголовок!' ) ;
}
if ( !$sel )
{
throw new Exception( 'Выберите категорию!' ) ;
}
if ( !$content )
{
throw new Exception( 'Краткое содержание пусто!' ) ;
}
if ( !$fullcontent )
{
throw new Exception( 'Подробное содержание пусто!' ) ;
}
if ( !$who )
{
throw new Exception( 'Выберите вариант отображения Вашей новости!' ) ;
}
}
catch ( exception $e )
{
echo '<div style="color:red;">' . iconv( 'windows-1251', 'UTF-8', $e->getMessage ) . '</div>' ;
}
Спустя 4 минуты, 9 секунд (14.10.2010 - 14:16) ekabolotina написал(а):
я ошибся в предыдущем посте и отредактировал, только латиницу отображает, HTML вот:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="script.js"></script>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title></title>
<link href="menu.css" rel="stylesheet" type="text/css" media="all" />
<link href="style.css" rel="stylesheet" type="text/css" media="all" />
<!--[if IE]><link rel="stylesheet" type="text/css" href="styleIE.css" media="all"/><![endif]-->
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="redactor/redactor.js"></script>
<link rel="stylesheet" href="redactor/css/redactor.css" type="text/css" />
</head>
<!--Start of header-->
<body>
<table border="0" width="100%" cellspacing="0" cellpadding="0" style="magin:0px; padding:0px;"><tr valign="top">
<td class="shadow_left"></td>
<td class="centerblockimg">
<div class="logo_licey"></div>
<div class="logo_licey_mini">т</div>
<div class="block_menu">
</div>
</td>
<td class="shadow_right"></td>
</tr></table> <!--End of header-->
<!--Start of body-->
<script type="text/javascript">
$(document).ready(
function()
{
$('#redactor_content').redactor({ focus: true, toolbar: 'classic' });
}
);
</script>
<script type="text/javascript">
$(document).ready(
function()
{
$('#redactor_content2').redactor({ focus: true, toolbar: 'classic' });
}
);
</script>
<table border="0" width="100%" cellspacing="0" cellpadding="0"><tr valign="top">
<td class="shadow_left"></td>
<td class="centerblock">
<table border="0" width="100%" cellspacing="0" cellpadding="0" valign="top"><tr>
<td class="left_column" valign="top">
<table border="0" width="100%" cellspacing="0" cellpadding="0"><tr><td class="left_corner_prog"></td><td class="center_corner_prog">
<strong><div class="title">Добавление новости на сайт</div></strong> </td><td class="right_corner_prog"></td></tr><tr valign="top"><td class="right_side_prog"></td><td class="center_content">
<form method="get" name="add">
<input type="text" name="title" class="form_text" style="width:250px; border:1px solid #bbbbbb; height:30px;"> Заголовок<br>
<select name="sel" size="1" class="form_select" style="width:250px; border:1px solid #bbbbbb; height:30px;margin-top:15px;">
<option value="">
<option value="news">Новости
<option value="projects">Проекты
<option value="rules">Правила
<option value="contacts">Контакты
</select> Категория<br> <br>
<select name="who" size="1" class="form_select" style="width:250px; border:1px solid #bbbbbb; height:30px;margin-top:15px;">
<option value="">
<option value="all">Все
<option value="my_only">Только участники из моей группы
</select> могут читать эту новость<br> <br>
<div style="font-size:15px; text-align:left; width:100%; height:20px; border-top:1px dashed #bbbbbb; padding-top:8px; padding-bottom:10px; color:#bbbbbb;">Краткое описание</div>
<textarea name="content" id="redactor_content" style="width: 100%; height: 320px;">
</textarea><br><br>
<div style="font-size:15px; text-align:left; width:100%; height:20px; border-top:1px dashed #bbbbbb; padding-top:8px; padding-bottom:10px; color:#bbbbbb;">Полное описание</div>
<textarea name="fullcontent" id="redactor_content2" style="width: 100%; height: 320px;"></textarea><br>
<br><input onClick="vote()" type="button" value="Готово" name="sbmt">
</form><br>
<div id="status"></div>
</td><td class="left_side_prog"></td></tr>
<tr><td><img src="img/bottoom_left_corner.png" width="10" height="10"></td><td class="prog_bottom"></td><td><img src="img/bottoom_right_corner.png" width="10" height="10"></td></tr></table>
Спустя 11 минут, 56 секунд (14.10.2010 - 14:28) arvitaly написал(а):
У вас jquery есть а вы самописные используете. Весь Ajax можно заменить на
var title = document.add.title.value;
var sel = document.add.sel.value;
var content = document.add.content.value;
var fullcontent = document.add.fullcontent.value;
var who = document.add.who.value;
$("#status").load("add.php?"+"title="+title+"&sel="+sel+"&content="+content+"&fullcontent="+fullcontent+"&who="+who);
Спустя 12 минут, 20 секунд (14.10.2010 - 14:41) Michael написал(а):
тут:
каждую переменную надо закодировать:
req.open("GET", "add.php?"+"title="+title+"&sel="+sel+"&content="+content+"&fullcontent="+fullcontent+"&who="+who, true);
каждую переменную надо закодировать:
req.open("GET", "add.php?"+"title="+encodeURIComponent(title)+"&sel="+encodeURIComponent(sel)+ ...
Спустя 20 часов, 14 минут, 10 секунд (15.10.2010 - 10:55) ekabolotina написал(а):
спасибо огромное за советы. А можете сказать, как реализовать это только при помощи POST запроса?
Спустя 5 минут, 36 секунд (15.10.2010 - 11:00) Michael написал(а):
Спустя 22 часа, 1 минута, 19 секунд (16.10.2010 - 09:02) ekabolotina написал(а):
а есть где по-подронее , прямо с примером как подсоединять и куда jQuery библиотеку. В общем весь код, а то там не понять что вообще и еще на английсуом..
Спустя 6 часов, 11 минут, 10 секунд (16.10.2010 - 15:13) Michael написал(а):
Цитата |
<script type="text/javascript" src="jquery-1.4.2.min.js"></script> |
у тебя уже подключена jQuery.
Вот на русском, читай - там же примеров хватает - что может быть непонятно? Вот так примерно будет:
$.post("add.php", { title: title, sel: sel, ... },
function(data){
// обрабатываем ответ - он в data;
});