Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача параметров в xajax функцию 
:(
    Опции темы
helflip
  Дата 13.9.2007, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 14.5.2006
Где: Moscow

Репутация: 2
Всего: 4



Привет всемsmile

У меня такая проблемка:

Есть форма созданная аяксом, ввожу в нее данные, потом появляються введенные данные для проверки и следующим шагом, если все введено правильно нужно передать этот массив введенных данных снова в этуже функцию и записать в базу. Но снова этот массив уже не передаеться или я неправильно делаю?

вот как у меня это выглядит:

Код

if($Step == "Step3"){

$checkVal = <<<EOF
    <span onclick="xajax_TypeOrg('none',$RsBank,$INN,'');">Шаг 1</span> -> <span onclick="xajax_TypeOrg('org',$RsBank,$INN,'');">Шаг 2</span> -> <strong style="color:green;">Шаг 3</strong>
<fieldset>
            <legend><strong style="color:red;">Проверка введенных данных</strong></legend>
            
            <table cellpadding="0" cellspacing="1" width="100%">
            <tbody><tr>
                <td class="row1" style="padding: 6px;" width="40%">
                    <strong>Номер договора</strong>
                    <div class="pp-tiny-text">Номер договора клиента</div>
                </td>
                <td class="row2" style="padding: 6px;" width="60%">
                    {$Data['NDog']}
                </td>
            </tr>
            </tbody></table>

</fieldset>
<div align="center" style="padding-top:10px;">
<input type="button" onclick="xajax_TypeOrg(4,'','',{$Data});" value="Готово" ></div>

EOF;
$objResponse->addScript("javascript:scroll(0,200);");

}if ($Step == 4){

        $checkVal = <<<EOF
    
        {$Data['NDog']}
    
EOF;
}


а вместо данных выводиться какаято буква либо f либо u либо A! Я чето не понимаю че за фигня

Это сообщение отредактировал(а) helflip - 13.9.2007, 11:06
--------------------
 
PM MAIL   Вверх
helflip
Дата 13.9.2007, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 14.5.2006
Где: Moscow

Репутация: 2
Всего: 4



ааа... народ, помогите пжлста, очень срочно надо!!!
--------------------
 
PM MAIL   Вверх
ewolf
Дата 13.9.2007, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: 8
Всего: 18



$Data - это массив? ты его не правильно передаешь, поскольку он не вставится как массив java

Формируй его самостоятельно.

Код

$code = array();
foreach( $Data as $key => $value )
  $code[] = "'$key':'$value'";
$code = '{'.implode(',', $code).'}';

echo '<input type="button" onclick="xajax_TypeOrg(4,\'\',\'\','.$code.');" value="Готово" ></div>'



- хотя бы так

Это сообщение отредактировал(а) ewolf - 13.9.2007, 15:45
PM MAIL ICQ   Вверх
helflip
Дата 13.9.2007, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 14.5.2006
Где: Moscow

Репутация: 2
Всего: 4



так с кавычками беда, функция так не вызывается

--------------------
 
PM MAIL   Вверх
ewolf
Дата 13.9.2007, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: 8
Всего: 18



Ну, поправь кавычки, какая беда.

Проблема-то решилась?
PM MAIL ICQ   Вверх
helflip
Дата 13.9.2007, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 14.5.2006
Где: Moscow

Репутация: 2
Всего: 4



неа, массив создаеться но получаеться такая байда 

Код

 onclick="xajax_TypeOrg(4,\'\',\'\','.{'NDog':'1590','OrgName':'РћРћРћ" Р­Р»Р°РґР°="" datedog="" 13="" СЃРµРЅС‚СЏР±СЂСЏ="" 2007="" РіРѕРґР°="" typedog="" msk="" osnova="" inn="" 7723587908="" kpp="" 772301001="" priceconn="" 750="" (семьсот="" РїСЏС‚ьдесят)="" pricework="" 300="" (триста)="" dolznost="" Р“енеральный="" РґРёСЂРµРєС‚РѕСЂ="" dolznostrp="" fio="" РњР°С‚веев="" РђР»РµРєСЃРµР№="" Р‘РѕСЂРёСЃРѕРІРёС‡="" fiorp="" telephone="" contactface="" address="" 109387,="" Р“.="" РњРѕСЃРєРІР°,="" СѓР».="" Р•йская,="" Рґ.="" 4,="" РєРѕСЂРї.="" email="" ,="" next3="" :="" РЁР°Рі="" 3="" }.="" );="" value="Готово" type="button">



Кодировка то ладно, хрен с ней, а вот как он сформирован я непонимаю!
--------------------
 
PM MAIL   Вверх
ewolf
Дата 13.9.2007, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: 8
Всего: 18



Сделай var_dump($Data), посмотри, что выводится.
PM MAIL ICQ   Вверх
sTa1kEr
Дата 13.9.2007, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Я бы рекомендовал использовать готовую библиотеку JSON. К примеру, для PHP >= 5.2.0
Код

// ...
$jsData = json_encode($Data);
$checkVal = <<< EOF
...
<input type="button" onclick="xajax_TypeOrg(4,'','',$jsData);" value="Готово" >
EOF;

И в функции xajax соответственно
Код

function TypeOrg($var1, $var2, $var3, $jsData)
{
   $Data = json_decode($jsData);
   // ...
}

Или для младших версий PHP использовать стороннюю библиотеку. Можно выбрать на официальном сайте JSON http://json.org/json-ru.html
PM MAIL   Вверх
ewolf
Дата 13.9.2007, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: 8
Всего: 18



sTa1kEr, да, это хорошее решение, но мне кажется, что у автора массив совсем простенький - он может воспользоваться и самостоятельным "упаковщиком"
PM MAIL ICQ   Вверх
sTa1kEr
Дата 14.9.2007, 00:11 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Цитата(ewolf @  13.9.2007,  21:14 Найти цитируемый пост)
но мне кажется, что у автора массив совсем простенький - он может воспользоваться и самостоятельным "упаковщиком" 

Я бы тогда немного модифицировал ваш код
Код

$code = array();
foreach ($Data as $key => $value)
{
   $code[] = "'".addcslashes($key, "'")."':'".addcslashes($value, "'")."'";
}
$code = "{".implode(",", $code)."}";

$str = <<< EOF
<input type="button" onclick="xajax_TypeOrg(4,'','',$code);" value="Готово" ></div>
EOF;
echo $str;



Это сообщение отредактировал(а) sTa1kEr - 14.9.2007, 00:19
PM MAIL   Вверх
helflip
Дата 14.9.2007, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 14.5.2006
Где: Moscow

Репутация: 2
Всего: 4



Спасибо, помогло!
Код

$code = array();
foreach ($Data as $key => $value)
{
   $code[] = '"'.addcslashes($key, '"').'":"'.addcslashes(iconv("UTF-8","windows-1251",$value), '"').'"';
}
$code = '{'.implode(',', $code).'}';


Только вот еще проблемка у меня в этом массиве есть еще один массив, который получается из чекбоксов
вот как я его перебираю 

Код

if (isset($Data['che'])==true){
    foreach ($Data['che'] as $key22 => $val22){
        $checkVal .= <<<EOF
        {$val22}
EOF;
    }
}


как его засунуть внутрь того массива?
--------------------
 
PM MAIL   Вверх
sTa1kEr
Дата 14.9.2007, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Все-таки не совсем простенький массив оказался smile Я думаю, тут подойдет рекурсивный вызов функции
Код

function array2js($array)
{
   $code = array();
   foreach ($array as $key => $value)
   {
      $code[] = '"'.addcslashes($key, '"').'":'
              . (is_array($value) ? array2js($value) : '"'.addcslashes(iconv("UTF-8","windows-1251",$value), '"').'"');
   }
   return '{'.implode(',', $code).'}';
}
echo array2js($Data);



Это сообщение отредактировал(а) sTa1kEr - 14.9.2007, 09:12
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0532 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.