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(),пробовал указывать прямой урл. |
Телепаты в отпуске
дайте ссылку на ваш main.php, hosting.php и кстати, в упор не вижу, где у вас тут применяется XMLHTTPRequest |
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> |
Цитата:
я вообще-то попросил ссылку если непонятно, то мне нужна на ваш сайт в инете, где крутится ваш код, чтобы мы могли глянуть, на вывод ошибок и провести трейсинг скрипта, раз уж вы с такой задач ей не справляетесь. И если уж на то пошло: скачайте фаербаг, и отлаживайте свой код. явных ошибок у вас я не вижу кроме того, что xmlhttp ни разу не инициализирован с помощью getXmlhttp() или иной функции не говоря уже об обработке но тогда hosting.php уж точно сам не должен работать |
Сайт на локалке,поэтому ссылку дать не могу.
Во вторых,вы правы,нигде нет инициализации getXmlhttp(),однако при работе с самим hosting.php её инициализация не понадобилась. Сней или без неё один и тот же эффект. А что вы имете ввиду говоря "нет обработки"? Но сам hosting.php работает,это я вам точно говорю. |
ставьте фаербаг и отлаживайте.
этого за вас никто делать не будет Цитата:
то есть вы ничего не знаете об ответе, и ничего не можете с ним сделать |
а привести пример обработки сможете?
|
в любой статье
даже в приведенной вами ссылке. читайте внимательнее, и не тратьте чужое время понапрасну. |
Цитата:
У меня в программах на Си всегда можно обнаружить и #include "../..etc" и т.д. вместо избыточного и неудобочитаемого #include "..\\..etc", а компилятор и не ругается. Плюс гарантия, если буду переделывать по *nix'ы, не нужно будет перелопачивать все пути! А php и html это подавно касается! Юзайте / и только /, ведь \ - пережитки DOS! Может скоро и Винда будет работать с правильными путями:yes: |
Часовой пояс GMT +3, время: 19:15. |