Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.10.2010, 02:44
Новичок на форуме
Отправить личное сообщение для reinkarnator Посмотреть профиль Найти все сообщения от reinkarnator
 
Регистрация: 21.10.2010
Сообщений: 4

XMLHTTPRequest + include php
Здравствуйте. Вопрос в следущем. Есть некий php(hosting.php) скрипт который инклудится к основному php файлу(main.php).
Внутри hosting.php написана след javascript функция:

<input type="button" value="add" name="add" onclick="ff()" /><br />
<span name="form_inner" id="form_inner">
<script language='JavaScript' type="text/javascript">
var i = 1;
function ff(){
  document.getElementById('form_inner').innerHTML = document.getElementById('form_inner').innerHTML +
"<input style='margin-left:54px;' type='text' name='domain"+i+"' value='tim"+i+"'/><br/>";
i++;
}
function cc (){
var params = '+i+';
xmlhttp.open("POST", '/main.php', true);
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send(params);
}
</script>
</span><input type="submit" name="Save" value="Save" onclick="cc()" />


Функция ff() добавляет input-ы,функция cc() POST-тит эти данные,что я могу принять их в php.
Вопрос в следующем: Почему при работе напрямую (т.е не через include) с файлом hosting.php все данные POST-ся нормально,а при инклуде его в файл main.php перестают работать?
П.с все проверял все подключено нормально,вызывал даже методом GET переменные не передаются.
пробовал создать и через getXmlhttp(),пробовал указывать прямой урл.
Ответить с цитированием
  #2 (permalink)  
Старый 21.10.2010, 11:28
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Телепаты в отпуске
дайте ссылку на ваш main.php, hosting.php
и кстати, в упор не вижу, где у вас тут применяется XMLHTTPRequest
Ответить с цитированием
  #3 (permalink)  
Старый 21.10.2010, 15:03
Новичок на форуме
Отправить личное сообщение для reinkarnator Посмотреть профиль Найти все сообщения от reinkarnator
 
Регистрация: 21.10.2010
Сообщений: 4

1) насчет xmlhttprequest:
строчка с 12 по 14 (асинхронный xmlhttprequest)
вот

2) насчет main.php,это гигантский файл,описывающий вызовы к базе. Написан чисто на PHP,поэтому переписывать его не вижу смысла,тем более к этому файлу он не имеет ни какого отношения за исключением инклуда:
if ($action == 'add_host') {
include ("includes\add\hosting.php");
echo '<a href="'.$_SERVER['PHP_SELF'].'">Back</a>';
}


где $action задаётся при помощи $_GET и урл формируется в соответствии с ним /main.php?action=add_host

3) hosting.php:
<?php
defined('ADMIN') or die('Restricted access');
//POsting vars
$reg=$_POST['reg_date'];
$end=$_POST['end_date'];
$klient=$_POST['klient'];
$tarif=$_POST['tarif'];
$comm=$_POST['comment'];
$stat=$_POST['status'];
$mon=$_POST['month'];
//Buttons
if (isset($_POST['Save'])) {
//$query=mysql_query("INSERT INTO hosting (domain_hosting,date_from_hosting,date_untill_hosting,klient_hosting,tarif_hosting,comment_hosting,status_hosting,month_hosting) VALUES ('$domain','$reg','$end','$klient','$tarif','$comm','$stat','$mon')");
//header("Location: ../../main.php");
$x = '';
for ($i=1;$i<=5;$i++){
$z =array($_POST[domain.$i]);
$x .= implode(',',(array)$_POST['domain'.$i]);
}
//$x = implode(",",$z);
echo $x;
}

if (isset($_POST['cancel'])) {
header("Location: ../../main.php");
}
$dat=date("Y-m-d");
?>

<form method="POST" action="main.php" id="form" name="form">
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td>Domain: <input type="button" value="add" name="add" onclick="ff()" /><br />
<span name="form_inner" id="form_inner">
<script language='JavaScript' type="text/javascript">
var i = 1;
function ff(){
  document.getElementById('form_inner').innerHTML = document.getElementById('form_inner').innerHTML +
"<input style='margin-left:54px;' type='text' name='domain"+i+"' value='tim"+i+"'/><br/>";
i++;
}
function cc (){
var params = '+i+';
xmlhttp.open("POST", '/main.php', true);
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send(params);
}
</script>
</span></td>
<td>Reg. Date: <input type="text" name="reg_date" value="<?php echo $dat; ?>"></td>
<td>End Date: <input type="text" name="end_date" value="<?php echo $dat; ?>"></td>
</tr>
<tr>
<td>Klient
<select name="klient">
<?php
$query=mysql_query("SELECT name FROM `client_hosting`");
while ($row=mysql_fetch_array($query))
{
echo '<option>'.$row[name].'</option>';
}
?>
</select>
</td>
<td>Tarif
<select name="tarif">
<?php
$query=mysql_query("SELECT tarif FROM `tarif_hosting`");
while ($row=mysql_fetch_array($query))
{
echo '<option>'.$row[tarif].'</option>';
}
?>
</select>
</td>
<td>Month: <input type="text" name="month"></td>
</tr>
<tr>
<td>Comment:
<select name="comment">
<?php
$query=mysql_query("SELECT comment FROM `comment_hosting`");
while ($row=mysql_fetch_array($query))
{
echo '<option>'.$row[comment].'</option>';
}
?>
</select>
</td>
<td colspan="2">Status:
<select name="status">
<?php
$query=mysql_query("SELECT status FROM `status_hosting`");
while ($row=mysql_fetch_array($query))
{
echo '<option>'.$row[status].'</option>';
}
?>
</select>
</td>
</tr>
</table>
<input type="submit" name="Save" value="Save" onclick="cc()" />
<input type="submit" name="cancel" value="Cancel" />
</form>
Ответить с цитированием
  #4 (permalink)  
Старый 21.10.2010, 16:40
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от reinkarnator
насчет main.php,это гигантский файл,описывающий вызовы к базе. Написан чисто на PHP,поэтому переписывать его не вижу
я разве просил переписывать?О_0
я вообще-то попросил ссылку
если непонятно, то мне нужна на ваш сайт в инете, где крутится ваш код, чтобы мы могли глянуть, на вывод ошибок и провести трейсинг скрипта, раз уж вы с такой задач ей не справляетесь.
И если уж на то пошло:
скачайте фаербаг, и отлаживайте свой код.
явных ошибок у вас я не вижу кроме того, что xmlhttp ни разу не инициализирован с помощью getXmlhttp() или иной функции
не говоря уже об обработке
но тогда hosting.php уж точно сам не должен работать
Ответить с цитированием
  #5 (permalink)  
Старый 21.10.2010, 18:10
Новичок на форуме
Отправить личное сообщение для reinkarnator Посмотреть профиль Найти все сообщения от reinkarnator
 
Регистрация: 21.10.2010
Сообщений: 4

Сайт на локалке,поэтому ссылку дать не могу.
Во вторых,вы правы,нигде нет инициализации getXmlhttp(),однако при работе с самим hosting.php её инициализация не понадобилась. Сней или без неё один и тот же эффект.

А что вы имете ввиду говоря "нет обработки"? Но сам hosting.php работает,это я вам точно говорю.
Ответить с цитированием
  #6 (permalink)  
Старый 21.10.2010, 23:45
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

ставьте фаербаг и отлаживайте.
этого за вас никто делать не будет

Сообщение от reinkarnator
А что вы имете ввиду говоря "нет обработки"? Но сам hosting.php работает,это я вам точно говорю.
вы посылаете ассинхронный запрос, и не выставляете ему функцию-обработчик.
то есть вы ничего не знаете об ответе, и ничего не можете с ним сделать
Ответить с цитированием
  #7 (permalink)  
Старый 22.10.2010, 02:06
Новичок на форуме
Отправить личное сообщение для reinkarnator Посмотреть профиль Найти все сообщения от reinkarnator
 
Регистрация: 21.10.2010
Сообщений: 4

а привести пример обработки сможете?
Ответить с цитированием
  #8 (permalink)  
Старый 22.10.2010, 02:42
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

в любой статье
даже в приведенной вами ссылке.
читайте внимательнее, и не тратьте чужое время понапрасну.
Ответить с цитированием
  #9 (permalink)  
Старый 14.11.2010, 23:54
Аватар для Paguo-86PK
Профессор
Отправить личное сообщение для Paguo-86PK Посмотреть профиль Найти все сообщения от Paguo-86PK
 
Регистрация: 16.09.2009
Сообщений: 253

Сообщение от reinkarnator
if ($action == 'add_host') {
include ("includes\add\hosting.php");
echo '<a href="'.$_SERVER['PHP_SELF'].'">Back</a>';
}
Сильно раздражает, когда в пути используется обратный слэш '\', так-как это всегда может привести к проблемам. Почему ни в какой литературе не указывается, что лучше лишний раз использовать '/' чем '\' и даже '\\'?
У меня в программах на Си всегда можно обнаружить и #include "../..etc" и т.д. вместо избыточного и неудобочитаемого #include "..\\..etc", а компилятор и не ругается. Плюс гарантия, если буду переделывать по *nix'ы, не нужно будет перелопачивать все пути!
А php и html это подавно касается! Юзайте / и только /, ведь \ - пережитки DOS! Может скоро и Винда будет работать с правильными путями
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Есть ли на JavaScript аналог PHP функции include?) FirstFrost Общие вопросы Javascript 3 13.07.2010 10:13
Подмена кода php include при наведении на ссылку pavdin Общие вопросы Javascript 29 01.07.2010 18:21
Как передать картинку из javascript в php KIVagant AJAX и COMET 3 12.05.2010 11:54
jQuery + PHP include simple-lad jQuery 2 26.02.2008 08:12