Как вставить xajax функцию в php

Sadalsky

Новичок
Есть xajax функция, ее надо вставить в php, никак не могу найти как это делается...
Существует файл php "View_Korzina", содержащий xajax функцию:
PHP:
<?PHP
function View_Korzina()
  {
  $objResponse = new xajaxResponse();
  $objResponse->assign("flag_ajax","value",'yes');
  $content2=f_view_korzina();
  $objResponse->assign("center1","innerHTML",$content2);
  $objResponse->assign("flag_korzina","value",'yes');
  $objResponse->assign("flag_ajax","value",'no');
  return $objResponse;
  }
 
?>
Никак не могу не найти, не понять как это вкрутить в php, типа:
PHP:
<div id=center1>
  <?php                  
      echo View_Korzina();
 ?>
</div>
Все время выдает вот такое:
Catchable fatal error: Object of class xajaxResponse could not be converted to string....
 

baev

‹°°¬•
Команда форума
Все время выдает вот такое:
Catchable fatal error: Object of class xajaxResponse could not be converted to string....
— перевести не пробовали?

Что делает строка «return $objResponse;»?
 

baev

‹°°¬•
Команда форума
Sadalsky
— и что является этим самым «результатом функции»?
 

Sadalsky

Новичок
baev
изменение значения блока <div id = "center"> на значение переменной $content2
 

Sadalsky

Новичок
baev
а переменная $content2 содержит другую функцию f_view_korzina()
 

Sadalsky

Новичок
baev
и если ее напрямую вывести, вот так:
PHP:
<?php echo f_view_korzina(); ?>
то она сработает и выведет все как положено....но отправит данные в таблицу MySQL не полностью....
 

Sadalsky

Новичок
baev
PHP:
<?php
function f_view_korzina()
  {
  require_once("mybaza.php");
  $text1="";
  $file1="tmp1/f-".$_SESSION['session']."-".$_SESSION['user'].".txt";
  $fp=fopen($file1,"r");
  $text1.="<form id='FormKorzina' action='javascript:void(null);' onsubmit='
                xajax.$(\"ButtonFormKorzina\").disabled=true;
	              xajax.$(\"ButtonFormKorzina\").value=\"Подождите...\";
                xajax_Create_Zakaz(xajax.getFormValues(\"FormKorzina\"));'>";
  $text1.="<div id=block_zakaz1>";
  $text1.="<table width=100%>";
  $text1.="<tr><td class='str0'></td>";
  $text1.="<td class='str0'>Товар</td>";
  $text1.="<td class='str0' align=right>Кол-во</td>";
  $text1.="<td class='str0' align=right>Цена,<br>руб</td>";
  $text1.="<td class='str0' align=right>Сумма,<br>руб</td>";
  $text1.="<td class='str0'></td>";
  $text1.="</tr>";
  
  $i=0;$summa=0;$count=0;              
  while($str=fgetcsv($fp,1000,";"))
   {$i++;
   $text1.="<tr>";
   $text1.="<td class='str".($i%2+1)."' width=5%>".$i."
            <input type=hidden name=korzina_id id=korzina_id value='".$str[0]."' >
            </td>";
   $query1="SELECT name FROM tovars WHERE id='".$str[0]."' ";
   $text1.="<td class='str".($i%2+1)."' width=60%>".mysql_result(mysql_query($query1),0)."</td>";
   $text1.="<td class='str".($i%2+1)."' width=10%><input type=text name=korzina_kol".$str[0]." 
            id=korzina_kol".$str[0]." value='".$str[1]."' size=3 maxlength=3 ".READONLYK."
            onchange='var x=new Array();x[0]=".$str[0].";x[1]=this.value;
            xajax_Change_Kol_Korzina(x);'>
            </td>";
   $text1.="<td class='str".($i%2+1)."' width=10%><input type=text name=korzina_pay".$str[0]." 
            id=korzina_pay".$str[0]." value='".$str[2]."' size=3 maxlength=6 readonly
            onclick='document.getElementById(\"korzina_kol".$str[0]."\").focus();
            return false;'></td>";
   $text1.="<td class='str".($i%2+1)."' width=10%><input type=text name=korzina_summa".$str[0]." 
            id=korzina_summa".$str[0]." value='".$str[2]*$str[1]."' size=6 maxlength=6 readonly
            onclick='document.getElementById(\"korzina_kol".$str[0]."\").focus();
            return false;' ></td>";
   $text1.="<td class='str".($i%2+1)."' width=5%><a href='javascript:void();' onclick='
            xajax_Delete_From_Korzina(".$str[0].")'><img src='img/delete.png'>
            </a></td>";
   $text1.="</tr>";
   $summa+=$str[1]*$str[2];
   $count+=$str[1];
   }
  $text1.="</table>";
  $text1.="</div>";
  $text1.="<br>
           <div id='itogo_korzina'>Итого - товаров - ".$count." , на сумму ".$summa." руб.</div>
           <br>";
  $text1.="<div id=block_zakaz2>";
  $text1.="<center><input type='button' value='Адрес доставки' onclick='xajax_Address_Korzina(1);'></center>";
  $text1.="</div>";
  $text1.="<center><input type='submit' id='ButtonFormKorzina' value='Оформить заказ'></center>";

  $text1.="</form>";
  
  return $text1;
  }

?>
 

Sadalsky

Новичок
baev
Перевести пробовал! Говорит, что не может перевести объект класса в строку или строчный элемент...
 

Sadalsky

Новичок
baev
я дико извиняюсь за свою назойливость но начну по порядку....думаю так будет надежнее...
Есть файл cart.php:

PHP:
<div id=center1>
  <?php                  
    echo f_view_korzina();
  ?>

он открывает в себе функцию f_view_korzina:

PHP:
<?php
// Корзина подробно

function f_view_korzina()
  {
  require_once("mybaza.php");
  $text1="";
  $file1="tmp1/f-".$_SESSION['session']."-".$_SESSION['user'].".txt";
  $fp=fopen($file1,"r");
  $text1.="<form id='FormKorzina' action='javascript:void(null);' onsubmit='
                xajax.$(\"ButtonFormKorzina\").disabled=true;
	              xajax.$(\"ButtonFormKorzina\").value=\"Подождите...\";
                xajax_Create_Zakaz(xajax.getFormValues(\"FormKorzina\"));'>";
  $text1.="<div id=block_zakaz1>";
  $text1.="<table width=100%>";
  $text1.="<tr><td class='str0'></td>";
  $text1.="<td class='str0'>Товар</td>";
  $text1.="<td class='str0' align=right>Кол-во</td>";
  $text1.="<td class='str0' align=right>Цена,<br>руб</td>";
  $text1.="<td class='str0' align=right>Сумма,<br>руб</td>";
  $text1.="<td class='str0'></td>";
  $text1.="</tr>";
  
  $i=0;$summa=0;$count=0;              
  while($str=fgetcsv($fp,1000,";"))
   {$i++;
   $text1.="<tr>";
   $text1.="<td class='str".($i%2+1)."' width=5%>".$i."
            <input type=hidden name=korzina_id id=korzina_id value='".$str[0]."' >
            </td>";
   $query1="SELECT name FROM tovars WHERE id='".$str[0]."' ";
   $text1.="<td class='str".($i%2+1)."' width=60%>".mysql_result(mysql_query($query1),0)."</td>";
   $text1.="<td class='str".($i%2+1)."' width=10%><input type=text name=korzina_kol".$str[0]." 
            id=korzina_kol".$str[0]." value='".$str[1]."' size=3 maxlength=3 ".READONLYK."
            onchange='var x=new Array();x[0]=".$str[0].";x[1]=this.value;
            xajax_Change_Kol_Korzina(x);'>
            </td>";
   $text1.="<td class='str".($i%2+1)."' width=10%><input type=text name=korzina_pay".$str[0]." 
            id=korzina_pay".$str[0]." value='".$str[2]."' size=3 maxlength=6 readonly
            onclick='document.getElementById(\"korzina_kol".$str[0]."\").focus();
            return false;'></td>";
   $text1.="<td class='str".($i%2+1)."' width=10%><input type=text name=korzina_summa".$str[0]." 
            id=korzina_summa".$str[0]." value='".$str[2]*$str[1]."' size=6 maxlength=6 readonly
            onclick='document.getElementById(\"korzina_kol".$str[0]."\").focus();
            return false;' ></td>";
   $text1.="<td class='str".($i%2+1)."' width=5%><a href='javascript:void();' onclick='
            xajax_Delete_From_Korzina(".$str[0].")'><img src='img/delete.png'>
            </a></td>";
   $text1.="</tr>";
   $summa+=$str[1]*$str[2];
   $count+=$str[1];
   }
  $text1.="</table>";
  $text1.="</div>";
  $text1.="<br>
           <div id='itogo_korzina'>Итого - товаров - ".$count." , на сумму ".$summa." руб.</div>
           <br>";
  $text1.="<div id=block_zakaz2>";
  $text1.="<center><input type='button' value='Адрес доставки' onclick='xajax_Address_Korzina(1);'></center>";
  $text1.="</div>";
  $text1.="<center><input type='submit' id='ButtonFormKorzina' value='Оформить заказ'></center>";

  $text1.="</form>";
  
  return $text1;
  }

?>


Это корзина интернет магазина - в нее клиент складывает товар...
После этого он может ее редактировать - изменять колличество товара и удалять
Это выполняют функции function_change_kol_korzina и function_delete_from_korzina

После того как клиент закончил измываться над своей корзиной он должен ввести адресс, куда его товаты ему доставить - за это отвечает function Address_Korzina($arg)

PHP:
<?php
// Адрес заказа в корзине
function Address_Korzina($arg)
  {
	$objResponse = new xajaxResponse();
  $objResponse->assign("flag_ajax","value",'yes'); 
	

  $content2="Адрес доставки<br>";
           
  $content2.="улица <input id='street' name=street type=text size=20 maxlength=20><br>";            
  $content2.="дом <input id='house' name='house' type=text size=6 maxlength=6><br>";            
  $content2.="квартира <input id='apartament' name='apartament' type=text size=4 maxlength=4><br>";            
         

  $objResponse->assign("block_zakaz2","innerHTML",$content2); 
  
  

  $objResponse->assign("flag_ajax","value",'no'); 

  return $objResponse;
  }

?>

После ввода адресса нажимаем "оформить заказ" и вся информация из формы попадает в таблицу MySQL - за это отвечает файл function f_create_zakaz($Id):

PHP:
<?php
// Создание заказа из корзины
// по кнопке Оформить заказ
function f_create_zakaz($Id)
  {
  require_once("mybaza.php");
  $text1="";$text01="";
  
  // извлечение из корзины и запись в базу
  $file1="tmp1/f-".$_SESSION[session]."-".$_SESSION[user].".txt";
  // создание заказа и получение id нового заказа
  $query1="INSERT INTO zakaz SET id_user='".$_SESSION[user]."' ";
  $rez1=mysql_query($query1);
  if(!$rez1)
    $text01.=$query1;
  $id=mysql_insert_id();
  // вставка позиций в zakaz_table и вычисление суммы заказа
  $fp=fopen($file1,"r");
  $summa=0;              
  while($str=fgetcsv($fp,1000,";"))
   {
   $id_zakaz=$id;
   $id_tovar=$str[0];
   $kol=$str[1];
   $pay_rub=$str[2];
   $summa_rub=$str[1]*$str[2];
   $summa_rub_oplata=0;
   $link="0";
   $count_download=0;
   $kol=change_kol($id_tovar,$kol);
   $query2="INSERT INTO zakaz_table SET 
            id_zakaz='".$id_zakaz."',id_tovar='".$id_tovar."',
            pay_rub='".$pay_rub."',kol='".$kol."',
            summa_rub='".($pay_rub*$kol)."' ";
   $rez2=mysql_query($query2);
   $summa+=$pay_rub*$kol;
   $query02="SELECT name FROM tovars WHERE id='".$str[0]."' ";        
   $text01.=mysql_result(mysql_query($query02),0)." - ".$str[1]."<br>";
   }
  // запись а таблицу zakaz
  $id_user=$_SESSION[user];
  $summa_rub=$summa;
  $summa_rub_oplata=0;
  $visible='yes';
  $address=$Id[street]." ".$Id[house]." ".$Id[apartament];
  $query3="UPDATE zakaz SET data='".date('Y-m-d H:i:s')."',
          id_user='".$id_user."',summa_rub='".$summa_rub."',
          pay='no',visible='".$visible."',address='".$address."'
          WHERE id='".$id."' ";
  $rez3=mysql_query($query3);
  // message_header4
  fclose($fp);  
  // очистка файла корзины  
  $fp=fopen($file1,"w");
  fwrite($fp,"");
  fclose($fp); 
  // формирование страницы вывода 
  $text1.="<center>";
  $text1.="<br><br><b>Заказ  ".$id."</b><br><br>";
  $text1.=$text01;
  $text1.="<br> Сумма к оплате : <br><b>".$summa." руб. </b> или <br>";
  $text1.="</center>";
  
  return $text1;  
  }
function change_kol($id,$arg)
  {
  require_once("mybaza.php");
  $query91="SELECT kol FROM tovars WHERE id='".$id."' ";
  $rez91=mysql_query($query91);
  $row91=mysql_fetch_assoc($rez91);
  $kol=$row91[kol];
  $arg1=min($kol,$arg);
  $query92="UPDATE tovars SET kol='".($kol-$arg1)."' WHERE id='".$id."' ";
  $rez92=mysql_query($query92);
  
  
  return $arg1;
  }
?>

Собственно говоря вот так....
Но почему то в этом случае не передаются данные из function Address_Korzina($arg) - т.е. адресс клиента.....
А вот если что нить изменить в корзине или удалить из нее то все попадает. Уже все излазил - прямо не знаю в чем дело...
 
Сверху