Передача параметра в php файл через тег <span> ?

12 3
T
На сайте с 07.12.2014
Offline
1
2726

Есть форма заявки, нужно передать итоговую стоимость которая считается и выдается result в span, никак не получается правильно запихнуть input. И еще вопрос, как правильно передать еще и параметры которые выбирает юзер, у меня почему то передается их цена (а должно быть в таком виде: Онлайн-магазин ; простой дизайн) нужно как то изменить value? но его менять нельзя ведь по этому числу работает калькуляция

Код спойлера

<!DOCTYPE html>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Сайт для Вас</title>
<meta name="description" content="Описание страницы" />
<meta name="keywords" content="Ключевые слова" />
<script type="text/javascript">

function calc() {
//получаем ссылку на элемент Select (Тип сайта)
var type_design = document.getElementById("type_design");
//получаем ссылку на элемент Select (Тип дизайна)
var type_design2 = document.getElementById("type_design2");
var is_html = document.getElementById("is_html");
//получаем ссылку на элемент input (Количество)
var count = document.getElementById("count");
//получаем ссылку на элемент span, в него будем писать стоимость дизайна
var result = document.getElementById("result");

var price = 0;
price += parseInt(type_design.options[type_design.selectedIndex].value) + parseInt(type_design2.options[type_design2.selectedIndex].value);
price += (is_html.checked == true) ? parseInt(is_html.value) : 0;
price = parseInt(count.value) * price;

result.innerHTML = price;
}

</script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="style4.css" media="screen" />
<style type="text/css">
.spoiler_body {display:none; cursor:pointer;}
</style>
</head>
<body>
<div id="page">
<header>
<a title="" class="logo"><img src="picture/logo.png" /></a>

<nav>
<ul id="top_menu">
<li><a href="index.html">О компании</a></li>
<li><a href="services.html">Портфолио</a></li>
<li><a href="contacts.html">Контакты</a></li>
<li><a href="order.html">Сделать заказ</a></li>
</ul>
</nav>

<div class="header_img">
<img src="picture/order.jpg" style="left:450px">

<script type="text/javascript">
$(document).ready(function(){
$('.spoiler_links').click(function(){
$(this).parent().children('div.spoiler_body').toggle('normal');
return false;
});
});
</script>

<a href="" class="spoiler_links"> <img src="picture/button-6520.png" style="position:relative;left:295px;top:-204px;" width="187" height="58"> </a>
<div class="spoiler_body" style="position:relative;left:0px;top:-204px;">
<form action="save_form.php" method="post" name="test_form">

<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2" align="center"><strong>Отправка запроса</strong></td>
</tr>
<tr>
<td width="105">Имя :</td>
<td><input type="text" name="test_name" maxlength="30" /></td>
</tr>
<tr>
<td width="105">E-Mail :</td>
<td><input type="text" name="test_mail" maxlength="30" /></td>
</tr>
<tr>
<td width="105">Выберите :</td>
</td>
<td><form action="http://ab-w.net/info.php" method="post" name="drop_down_box">

<select onchange="calc()" id="type_design" <input type="hidden" name="test_selection" maxlength="30"
<option value="0" />Проект </option>
<option value="6900">Сайт-визитка - 6900 руб</option>
<option value="9420">Онлайн-магазин - 9420 руб</option>
<option value="8600">Портал - 8600 рублей</option>
</select><br/>

<select onchange="calc()" id="type_design2" <input type="hidden" name="test_selection2" maxlength="30"
<option value="0" />Дизайн</option>
<option value="1150">Простой дизайн - 1150 руб</option>
<option value="3700">Сложный дизайн - 3700 руб</option>
</select><br/>
<input type="checkbox" onchange="calc()" value="3000" id="is_html" />
<label for="is_html">Требуется <acronym title="Код, который сможет понять компьютер любого читателя, зашедшего на вашу страничку.">верстка? (+3000руб)</acronym></label>
<br/>
Количество: <input type="text" style="width:50px" id="count" value="1" onchange="calc()" />
<div>Стоимость сайта: <span id="result">0</span> руб. <input type="hidden" name="test_price" maxlength="30" /></div>
</form></td>
</tr>
<tr>
<td width="105">Примечание :</td>
<td><textarea name="test_mess"></textarea></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" class="buttons" value="Отправить запрос" />
<input type="reset" class="buttons" value="Очистить" />
</td>
</tr>
</table>
</form>
</div>

</div>
</header>
</div>
</body>
</html>

Обработчик php

<?


/* —оедин¤емс¤ с базой данных */
$hostname = "localhost"; // название/путь сервера, с MySQL
$username = "root"; // им¤ пользовател¤ (в Denwer`е по умолчанию "root")
$password = ""; // пароль пользовател¤ (в Denwer`е по умолчанию пароль отсутствует, этот параметр можно оставить пустым)
$dbName = "test_base"; // название базы данных

/* “аблица MySQL, в которой будут хранитьс¤ данные */
$table = "test_table";

/* —оздаем соединение */
mysql_connect($hostname, $username, $password) or die ("Ќе могу создать соединение");

/* ¬ыбираем базу данных. ***8776;сли произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die (mysql_error());

/* ќпредел¤ем текущую дату */
$cdate = date("Y-m-d");

/* —оставл¤ем запрос дл¤ вставки информации в таблицу
name...date - название конкретных полей в базе;
в $_POST["test_name"]... $_POST["test_mess"] - в этих переменных содержатс¤ данные, полученные из формы */
$query = "INSERT INTO $table SET name='".$_POST['test_name']."', email='".$_POST["test_mail"]."', selection='".$_POST["test_selection"]."', selection2='".$_POST["test_selection2"]."', message='".$_POST["test_mess"]."', price='".$_POST["test_price"]."', data='$cdate'";

/* ¬ыполн¤ем запрос. ***8776;сли произойдет ошибка - вывести ее. */
mysql_query($query) or die(mysql_error());

/* «акрываем соединение */
mysql_close();

/* ¬ случае успешного сохранени¤ выводим сообщение и ссылку возврата */
echo ("<div style=\"text-align: center; margin-top: 10px;\">
<font color=\"green\">***402;анные успешно сохранены!</font>

<a href=\"index.html\">¬ернутьс¤ назад</a></div>");

?>
N
На сайте с 05.10.2010
Offline
88
#1
T
На сайте с 07.12.2014
Offline
1
#2

я видел это в другой теме, но не понимаю как это реализуется

T
На сайте с 07.12.2014
Offline
1
#3

поменял в html вот так

  var result = document.getElementById("result").value = result; 


var price = 0;
price += parseInt(type_design.options[type_design.selectedIndex].value) + parseInt(type_design2.options[type_design2.selectedIndex].value);
price += (is_html.checked == true) ? parseInt(is_html.value) : 0;
price = parseInt(count.value) * price;

result.value = price;
}

убрал span'ы и вставил вот так

<input type="hidden" name="test_price" id="result" value"" />

в базе данных получилось значение, но оно отображается как "undefined"

Mad_Man
На сайте с 10.11.2008
Offline
162
#4
temasey:
var result = document.getElementById("result").value = result;

У <span> нету никаких value, это вам не поле:

document.getElementById("result").innerText;
temasey:
var result = document.getElementById("result").value = result;

Присваивание (как и объявление переменных) происходит справа налево. Что вы хотели этим странным действием - непонятно.

temasey:
<input type="hidden" name="test_price" id="result" value"" />

После value поставьте символ "=".

temasey:
в базе данных получилось значение, но оно отображается как "undefined"

Тип поля строковый зачем для числовых данных впёрли?

T
На сайте с 07.12.2014
Offline
1
#5

Mad_Man, поменял тип данных на TEXT, так надо?

и так? Все равно ничего не происходит :(

<!DOCTYPE html>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Сайт для Вас</title>
<meta name="description" content="Описание страницы" />
<meta name="keywords" content="Ключевые слова" />
<script type="text/javascript">

function calc() {
//получаем ссылку на элемент Select (Тип сайта)
var type_design = document.getElementById("type_design");
//получаем ссылку на элемент Select (Тип дизайна)
var type_design2 = document.getElementById("type_design2");
var is_html = document.getElementById("is_html");
//получаем ссылку на элемент input (Количество)
var count = document.getElementById("count");
//получаем ссылку на элемент span, в него будем писать стоимость дизайна
var result = document.getElementById("result").innerText;

var price = 0;
price += parseInt(type_design.options[type_design.selectedIndex].value) + parseInt(type_design2.options[type_design2.selectedIndex].value);
price += (is_html.checked == true) ? parseInt(is_html.value) : 0;
price = parseInt(count.value) * price;

result.innerHTML = price;
}

</script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="style4.css" media="screen" />
<style type="text/css">
.spoiler_body {display:none; cursor:pointer;}
</style>
</head>
<body>
<div id="page">
<header>
<a title="" class="logo"><img src="picture/logo.png" /></a>

<nav>
<ul id="top_menu">
<li><a href="index.html">О компании</a></li>
<li><a href="services.html">Портфолио</a></li>
<li><a href="contacts.html">Контакты</a></li>
<li><a href="order.html">Сделать заказ</a></li>
</ul>
</nav>

<div class="header_img">
<img src="picture/order.jpg" style="left:450px">

<script type="text/javascript">
$(document).ready(function(){
$('.spoiler_links').click(function(){
$(this).parent().children('div.spoiler_body').toggle('normal');
return false;
});
});
</script>

<a href="" class="spoiler_links"> <img src="picture/button-6520.png" style="position:relative;left:295px;top:-204px;" width="187" height="58"> </a>
<div class="spoiler_body" style="position:relative;left:0px;top:-204px;">
<form action="save_form.php" method="post" name="test_form">

<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2" align="center"><strong>Отправка запроса</strong></td>
</tr>
<tr>
<td width="105">Имя :</td>
<td><input type="text" name="test_name" maxlength="30" /></td>
</tr>
<tr>
<td width="105">E-Mail :</td>
<td><input type="text" name="test_mail" maxlength="30" /></td>
</tr>
<tr>
<td width="105">Выберите :</td>
</td>
<td><form action="http://ab-w.net/info.php" method="post" name="drop_down_box">

<select onchange="calc()" id="type_design" <input type="hidden" name="test_selection" maxlength="30"
<option value="0" />Проект </option>
<option value="6900">Сайт-визитка - 6900 руб</option>
<option value="9420">Онлайн-магазин - 9420 руб</option>
<option value="8600">Портал - 8600 рублей</option>
</select><br/>

<select onchange="calc()" id="type_design2" <input type="hidden" name="test_selection2" maxlength="30"
<option value="0" />Дизайн</option>
<option value="1150">Простой дизайн - 1150 руб</option>
<option value="3700">Сложный дизайн - 3700 руб</option>
</select><br/>
<input type="checkbox" onchange="calc()" value="3000" id="is_html" />
<label for="is_html">Требуется <acronym title="Код, который сможет понять компьютер любого читателя, зашедшего на вашу страничку.">верстка? (+3000руб)</acronym></label>
<br/>
Количество: <input type="text" style="width:50px" id="count" value="1" onchange="calc()" />
<div>Стоимость сайта: <span id="result">0</span> руб. </div>
<input type="hidden" name="test_price" id="result" value="" />
</form></td>
</tr>
<tr>
<td width="105">Примечание :</td>
<td><textarea name="test_mess"></textarea></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" class="buttons" value="Отправить запрос" />
<input type="reset" class="buttons" value="Очистить" />
</td>
</tr>
</table>
</form>
</div>

</div>
</header>
</div>
</body>
</html>
Оптимизайка
На сайте с 11.03.2012
Offline
396
#6


$query = "INSERT INTO $table SET name='".$_POST['test_name']."', email='".$_POST["test_mail"]."', selection='".$_POST["test_selection"]."', selection2='".$_POST["test_selection2"]."', message='".$_POST["test_mess"]."', price='".$_POST["test_price"]."', data='$cdate'";

Феерия SQL-инъекций.

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
T
На сайте с 07.12.2014
Offline
1
#7

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

Оптимизайка
На сайте с 11.03.2012
Offline
396
#8
temasey:
Оптимизайка, это все тонкости, страничка просто на виртуальном сервере. Ты ведь об уязвимости сейчас?

Ну да, любой школьник же положит вам базу, отправив на http://ab-w.net/save_form.php специальным образом сформированные данные.

По сути вопроса. Код - треш. Форму в форме нельзя размещать. Зачем вы делаете "document.getElementById("type_design")" когда на сайте есть jquery. input в select тоже. Тэги не закрыты. Удивительно что оно вообще как-то работает.

T
На сайте с 07.12.2014
Offline
1
#9

Оптимизайка, это сейчас не важно, суть в том что я эту базу собрать даже не могу

---------- Добавлено 08.12.2014 в 03:40 ----------

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

siv1987
На сайте с 02.04.2009
Offline
427
#10
temasey:
var result = document.getElementById("result").innerText;
temasey:
result.innerHTML = price;

result у вас не объект элемента, а просто текст - ("result").innerText. Если хотите получить объект уберите .innerText

var result = document.getElementById("result")

temasey:
<span id="result">0</span>
temasey:
<input type="hidden" name="test_price" id="result" value="" />

Два элемента с одинаковым id. Вы какому result хотите присвоить значение? Поле test_price нигде не фигурирует, значит оно уйдет на сервер пустое.

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий