Здравейте,
имам код който обработва една заявка. Проблемът е в това че заявката се обработва правилно но когато билдва стринг за заявка не ми отпечатва всички променливи които искам да се видят.
Тук създавам формата:
А тук обработвам данните и извеждам стригн с резултатите:
Не се отпечатват променливите $broi $height $width. Може ли някой да помогне? [/quote]
имам код който обработва една заявка. Проблемът е в това че заявката се обработва правилно но когато билдва стринг за заявка не ми отпечатва всички променливи които искам да се видят.
Тук създавам формата:
Код:
<?php
/* order form code from dyn-web.com */
$PRODUCTS = array(
// product abbreviation, product name, unit price
// follow valid name/ID rules for product abbreviation
array('Нискоемисионно', 'Нискоемисионно/К стъкло'),
array('Отражателно', 'Отражателно/рефлекторно стъкло'),
array('Четирисезонно', 'Четирисезонно/мултифункционално стъкло'),
array('Триплекс', 'Триплекс - многослойно стъкло'),
);
function getOrderForm2() {
global $PRODUCTS;
$tbl = new HTML_Table(null, 'display', 0, 0, 0);
$frm = new HTML_Form();
// header row
$tbl->addRow();
$tbl->addCell('Продукт', 'first', 'header');
$tbl->addCell('Дебелина', null, 'header');
$tbl->addCell('Височина', null, 'header');
$tbl->addCell('Широчина', null, 'header');
$tbl->addCell('Брой', null, 'header');
// display product info/form elements
foreach($PRODUCTS as $product) {
list($abbr, $name, $price,) = $product;
$height = $frm->addInput('text', $abbr . '_height', 0,
array('size'=>4, 'class'=>'cur',
'onchange'=>'getProductTotal(this)',
'onclick'=>'checkValue(this)', 'onblur'=>'reCheckValue(this)' )
);
$shirochina = $frm->addInput('text', $abbr . '_shirochina', 0,
array('size'=>4, 'class'=>'cur',
'onchange'=>'getProductTotal(this)',
'onclick'=>'checkValue(this)', 'onblur'=>'reCheckValue(this)' )
);
$deep = $frm->addInput('text', $abbr . '_qty', 0,
array('size'=>4, 'class'=>'cur',
'onchange'=>'getProductTotal(this)',
'onclick'=>'checkValue(this)', 'onblur'=>'reCheckValue(this)' )
);
$broi = $frm->addInput('text', $abbr . '_broi', 0,
array('size'=>4, 'class'=>'cur',
'onchange'=>'getProductTotal(this)',
'onclick'=>'checkValue(this)', 'onblur'=>'reCheckValue(this)' )
);
// $tot_el = $frm->addInput('text', $abbr . '_tot', 0, array('readonly'=>true, 'size'=>8, 'class'=>'cur') );
// $price_el = $frm->addInput('hidden', $abbr . '_price', $price);
$tbl->addRow();
$tbl->addCell($name);
$tbl->addCell($deep, 'deep' );
$tbl->addCell($shirochina, 'shirochina' );
$tbl->addCell( $height, 'height' );
$tbl->addCell( $broi, 'broi' );
}
// total row
$tbl->addRow();
$tbl->addCell();
$tbl->addCell();
/////////////////////////////////////////////////////////////////////
// additional fields for contact info
$tbl->addRow();
$tbl->addCell('Клиент: ', 'label');
$tbl->addCell(
$frm->addInput('text', 'first_name', '', array('size'=>36 ) )
, null, 'data', array('colspan'=>3)
);
$tbl->addRow();
$tbl->addCell('Адрес: ', 'label');
$tbl->addCell(
$frm->addInput('text', 'last_name', '', array('size'=>36) )
, null, 'data', array('colspan'=>3)
);
$tbl->addRow();
$tbl->addCell('Телефон: ', 'label');
$tbl->addCell(
$frm->addInput('text', 'phone', '', array('size'=>36) ), null, 'data',
array('colspan'=>3)
);
$tbl->addRow();
$tbl->addCell('Email: ', 'label');
$tbl->addCell(
$frm->addInput('text', 'email', '', array('size'=>36) ), null, 'data',
array('colspan'=>3)
);
$tbl->addRow();
$tbl->addCell('Дата на доставка: ', 'label');
$tbl->addCell(
$frm->addInput('text', 'tovar', '', array('size'=>36) ), null, 'data',
array('colspan'=>3)
);
$tbl->addRow();
$tbl->addCell('Забележка/Видове обработка: ', 'label');
$tbl->addCell(
$frm->addInput('text', 'zabelejka', '', array('size'=>36) ), null, 'data',
array('colspan'=>3)
);
//
/////////////////////////////////////////////////////////////////////
// submit button
$tbl->addRow();
$tbl->addCell();
$tbl->addCell( $frm->addInput('submit', 'submit', 'Потвърди') );
$tbl->addCell();
$tbl->addCell();
$frmStr = $frm->startForm('ex2_result.php', 'post', null,
array('onsubmit'=>'return finalCheck(this)') ) .
$tbl->display() . $frm->endForm();
return $frmStr;
}
// for js
function getProductAbbrs() {
global $PRODUCTS;
foreach ( $PRODUCTS as $product ) {
$ar[] = $product[0];
}
return $ar;
}
?>
А тук обработвам данните и извеждам стригн с резултатите:
Код:
<?php
require('includes/ex2.inc.php');
function sendAdminEmail($total, $order) {
$admin_email = 'petiob@gmail.com';
$subject = 'Заявка';
$lice = stripslashes ( strip_tags( $_POST['last_name']));
$name = stripslashes( strip_tags( $_POST['first_name'] ) );
$email = stripslashes( strip_tags( $_POST['email'] ) );
// check for valid email address
$regex = '/^[\w\+\'\.-]+@[\w\'\.-]+\.[a-zA-Z]{2,}$/';
if ( !preg_match($regex, $_POST['email']) ) {
// don't send email
echo '<p>Въведеният емейл е грешен. Моля въведете коректно емейла си и опитайте отново!.</p>';
return;
}
$phone = stripslashes( strip_tags( $_POST['phone'] ) );
$tovar = stripslashes( strip_tags( $_POST['tovar'] ) );
$zabelejka = stripslashes( strip_tags( $_POST['zabelejka'] ) );
$msg_body = "Заявката е:
$order
Име/Организация: $name
Лице за контакти: $lice
Email: $email
Телефон: $phone
Дата на товарене: $tovar
Забележка: $zabelejka";
echo nl2br($msg_body); // for testing
//@mail($admin_email, $subject, $msg_body );
}
function handleOrderInfo() {
global $PRODUCTS;;
$str = ''; $total = 0; $order = '';
while ( list($key, $val, $shirochina, $broi, $height, $deep,) = each($_POST) ) {
// Check for valid quantity entries > 0
if ( ( strpos($key, '_qty') !== false ) && is_int( (int)$val) && $val > 0 ) {
$pt = strrpos($key, '_qty'); // get product abbr
$name_pt = substr( $key, 0, $pt);
foreach($PRODUCTS as $product) {
list($prod_abbr, $prod_name, $prod_price,) = $product;
if ($prod_abbr == $name_pt) {
$sub_tot = $val * $prod_price;
// build string to display order info
$str .= "<p>$broi бр $prod_name с дебелина $val мм височина $height мм с широчина $shirochina мм " . '</p>';
$order .= "<p>$broi бр $prod_name с дебелина $val мм височина $height мм с широчина $shirochina мм";
}
}
}
}
//$total = number_format($total, 2);
$order = rtrim($order, ', ');
if ( $str === '' ) {
$str = '<p>Вие не сте поръчали нищо! Моля изберете артикул! .</p>';
} else {
$str = "<h2>Вашата заявка е:</h2>$str";
sendAdminEmail($total, $order);
}
return $str;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Your Order</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="includes/ex.css" type="text/css" />
</head>
<body>
<?php
echo handleOrderInfo();
?>
<p> </p>
<p>A <code>sendAdminEmail</code> function is included in the head of this file. You will need to place your email address there (<code>$admin_email</code>) and uncomment the <code>mail</code> function to send the emails.</p>
<p>Back to <a href=".">index</a></p>
</body>
</html>
Не се отпечатват променливите $broi $height $width. Може ли някой да помогне? [/quote]