Xajax и функция JavaScript

Andykalinin

Новичок
Xajax и функция JavaScript

Короче вот код.
PHP:
<?php
require_once("../ajax/xajax.inc.php");
require "../../db.php";
require "../inc.php";
unset($logged_user);
session_start();
if (sess_check($logged_user)==0) header('location:../index.php');
session_register($logged_user);
if (!mysql_connect($SERVER,$USER,$PASSWD))
{
    include "../../up.php";
    echo "Нет коннекта с базой данных. Подождите 2 минуты.\n";
    include "../../bottom.php";
    exit;
}
mysql_select_db($DB);
mysql_query("set names cp1251");
$xajax = new xajax();
$xajax->registerFunction("psih");
$xajax->registerFunction("psih_res");
$xajax->debugOn();

function psih($id)
{
    $content="<form id='players' onsubmit=\"xajax_psih_res(xajax.getFormValues('players'));return false;\">";
    $res=mysql_query("blaabla bla"); // дело полюбому не в запрсе ;)
    while ($r=mysql_fetch_array($res)){
        $pl[]=array('name'=>$r['name'], 'id'=>$r['id'], 'moral'=>$r['moral']);
    }
    $max_num=12;
    $num_pl=mysql_num_rows($res);
    $num=min($max_num, $num_pl);
    for ($i=0; $i<$num; $i++)
    {
        $content.="<li><select name='i_$i' id='i_$i' ".(($i>0)?"disabled":"")." OnChange=\"sel('$i','$num')\"><option>";
        foreach ($pl as $v)
        {
            $content.="<option value=".$v['id'].">".$v['name']." (".$v['moral'].")";
        }
        $content.="</select></li>";
    }
    $content.="<input type=submit value='Поговорить'><input type=button onclick=\"xajax_psih('$id')\" value='Сбросить'></form>";
  $objResponse = new xajaxResponse();
  $objResponse->addAssign("result","innerHTML", $content);
  return $objResponse;
}
function psih_res($arr)
{
    foreach ($arr as $k=>$v)
    {
        $$k=$v;
    }
    $content="<pre>".var_export($arr, true)."</pre>";
  $objResponse = new xajaxResponse();
  $objResponse->addAssign("res","innerHTML", $content);
  return $objResponse;
}
$xajax->processRequests();
if (getglobal('nochange')=='1') header('location:../index.php');

if(isset($logged_user)) {
    $pagetitle="Кабинет психолога";
    include "../../up.php";
    echo "<div id=\"result\"><script>xajax_psih('$logged_user');</script></div><div id=\"res\"></div>";
    include "../../bottom.php";
?>
<script>function sel(selectid,selectnum)
{
    var selectedid=xajax.$('i_'+selectid).options[xajax.$('i_'+selectid).selectedIndex].value;
    var id=selectid*1;
    for (var i=id+1; i<selectnum; i++)
    {
        for (var k=0; k<xajax.$('i_'+i).options.length; k++)
        {
            if (xajax.$('i_'+i).options[k].value==selectedid) {xajax.$('i_'+i).options[k]=null;    }
        }        
    }
    xajax.$('i_'+selectid).disabled = true;
    var next=id+1;
    if (next<selectnum){
        xajax.$('i_'+next).disabled = false;
    }    
};
</script>
<?}

?>
если отрубить функцию JS sel то все работает, а если не отрубать то во вторую функцию передается пустой массив...
PS Пусть код немного тупой, но все же...
 

ZigFreeD

Новичок
ставь алерты везде и смотри где затык и что хранится в переменных и когда они обнуляются!
 
Сверху