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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача данных переменной, из JavaScript php-скрипту 
:(
    Опции темы
Enya
  Дата 8.5.2006, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вот:
У нас есть php-скрипт который отправляет данные формы по почте
Код

<?
$mymail="[email protected]"; // адрес email, на который будет высылаться почта (например, [email protected])
$updir="upload/"; // директория сайта, в которую будет производиться закачка файлов (например, upload/). Слэш в конце обязателен
$after_sent="/sent.shtml"; // страница, на которую будет перенаправлен пользователь после отправки письма
$max="2097152"; // максимальный размер файла, который сможет закачивать пользователь (в байтах)
## не меняйте ничего ниже
if(empty($go)) {
if (file_exists("header.html")) {
include ("header.html");
} 
?>
<p style="margin-left: 30" align="justify"><form ENCTYPE="multipart/form-data" action="<?echo $PHP_SELF;?>" method=post>
  <table border="0" width=83%>
    <tr> 
      <td width=30%><font size=+1 color=red>&clubs;</font>&nbsp;Ваше имя: </td>
      <td width=70%> 
        <input type=text name=name>
      </td>
    </tr>
    <tr> 
      <td width=30%><font size=+1 color=red>&clubs;</font>&nbsp;Ваш сайт: </td>
      <td width=70%> 
        <input type=text name=site>
      </td>
    </tr>
    <tr> 
      <td width=30%><font size=+1 color=red>&clubs;</font>&nbsp;Номера клеток: </td>
      <td width=70%> 
        <input type=text name=quadtrs maxlength="25">
      </td>
    </tr>
    <tr> 
      <td width=30%><font size=+1 color=red>&clubs;</font>&nbsp;Ваш E-mail: </td>
      <td width=70%><input type=text name=mail></td>
    </tr>
<tr> 
      <td width=30%><font size=+1 color=red>&clubs;</font>&nbsp;Тема: </td>
      <td width=70%> 
        <input type="text" name="subject">
      </td>
    </tr>
    <tr> 
      <td width=30%>Текст сообщения:</td>
      <td width=70%> 
        <textarea name="message" rows="10" cols="40"></textarea>
      </td>
    </tr>
    <tr> 
      <td width=30%>Прикрепить файл (max. 2 MB): </td>
      <td width=70%><INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="<?echo $max;?>"><INPUT NAME="userfile" TYPE="file" SIZE="40"></td>
    </tr>
    <tr> 
      <td colspan="2"> 
        <center>
          <input type="submit" name=go value="Отправить">
       </center>
      </td></tr></table></form></p>
<?
if (file_exists("footer.html")) {
include ("footer.html");
}
}
else {
if(empty($name)) { 
$bad = "Вы не подписались<br>";
}
if(empty($site)) { 
$bad = "Вы не указали ваш сайт<br>";
}
if(empty($quadtrs)) { 
$bad = "Вы не указали номера клеток<br>";
}
if(!preg_match("/^([a-z,0-9])+@([a-z,0-9])+(.([a-z,0-9])+)+$/", $mail)) // проверка правильности введенного e-mail адреса
{
$bad .= "Неправильный e-mail<br>";
}
if(empty($subject)) { 
$bad .= "Отсутствует тема сообщения<br>";
}
if ($bad) 
{
echo $bad;
?>
<a href="javascript:history.back(1)">Заполните, пожалуйста, пустые поля</a>
<?
exit;
}
if (is_uploaded_file($userfile)) { 
if (filesize($userfile)<=$max){ 
$fi = "K письму был прикреплен файл $userfile_name размером $userfile_size байт, который был закачан в директорию $updir";
}
}
$ip = getenv("REMOTE_ADDR");
$usa = getenv("HTTP_USER_AGENT");
$temp = "$fi\n\nВам было отправлено сообщение:\n\n Name: $name\n\n Site: $site\n\n Номера клеток: $quadtrs\n\n $message\n\nIP-адрес отправителя: $ip\nuser-agent: $usa";
$subj = "$subject"; 
$body = $temp;
$adds = "From: $mail\n"; 
$adds .= "X-Sender: < $mail >\n";
$adds .= "Content-Type: text/plain; charset=windows-1251\n"; 
mail($mymail,$subj,$body,$adds); 
Header("Location: $after_sent");
}
if (is_uploaded_file($userfile)) {
if (filesize($userfile)<=$max){
$dest=$updir.$userfile_name;
    move_uploaded_file($userfile, $dest);
}
} 
?>
И есть кусочек кода DHTML
Код

<script>
function aaa()
{
forma = document.form1;
x = forma.cena.value;
forma.cena_podscitannaja.value = x*10;
}
</script>

<form name="form1">
<input type="text" name="cena" onchange="aaa();" onkeydown="aaa();" onkeyup="aaa();" onblur="aaa();">
<input type="text" name="cena_podscitannaja">
</form>

Так вот, мне нужно переменную cena_podscitannaja передать по почте, тоесть включить во сюда 
Код

$temp = "$fi\n\nВам было отправлено сообщение:\n\n Name: $name\n\n Site: $site\n\n Номера клеток: $quadtrs\n\n $message\n\nIP-адрес отправителя: $ip\nuser-agent: $usa"; // вставить сюда, чтобы отправилось по почте
Как вот синхронизировать? smile  smile  


--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
sugee
Дата 8.5.2006, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Отправить форму отсюда 
Цитата(Enya @  8.5.2006,  10:49 Найти цитируемый пост)
кусочек кода DHTML

сюда 
Цитата(Enya @  8.5.2006,  10:49 Найти цитируемый пост)
есть php-скрипт

 
PM MAIL   Вверх
sugee
Дата 8.5.2006, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Но если ты хочешь чтобы у тебя все поля находились на одной странице,   то можно сделать так: после вычисления цены сделать перенаправление   на ту же страницу, а цену передать через урл.

Тоесть примерно так
Код

<script>
var RedirectTo = "yourscript.php" + '?';
var cena_podscitannaja;

function aaa()
{
forma = document.form1;
x = forma.cena.value;
forma.cena_podscitannaja.value = x*10;
cena_podscitannaja = forma.cena_podscitannaja.value;
}

function bbb()
{
RedirectTo = RedirectTo + "cena_podscitannaja="+cena_podscitannaja;
window.location.href = RedirectTo;
}
</script>

<form name="form1" >
<input type="text" name="cena" onchange="aaa();" onkeydown="aaa();" onkeyup="aaa();" onblur="aaa();">
<input type="text" name="cena_podscitannaja">
<input onclick="bbb();" type="submit">
</form>
    

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


Опытный
**


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

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



sugee, а нельзя, чтобы:

Имя: ..
Ресурс: ...
кол-во квадратов: ... цена: .....
+----------
|текст
+------
Отправить. smile 

Чёрт, что же делать? smile  


--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
sugee
Дата 8.5.2006, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну значит вот эти поля
Код

<input type="text" name="cena" onchange="aaa();" onkeydown="aaa();" onkeyup="aaa();" onblur="aaa();">
<input type="text" name="cena_podscitannaja">
помести в ту же форму где у тебя все остальное, для цены можно сделать кнопку "вычислить",  только она на самом деле не будет ничего вычислять, а просто запустит  функцию редиректа. Ну или можно эту функцию на onblur() повесить.

После редиректа проверяешь наличие $_GET['cena_podscitannaja'],
и если она есть генеришь поле типа hidden, где в value будет $_GET['cena_podscitannaja'].  
Правда тут есть один недостаток, после редиректа поля cena и cena_podscitannaja очистятся.  Но нужная цифра у нас уже есть в
переменной $_GET['cena_podscitannaja'], так что ты можешь занести  в значения этих полей то что в них должно быть с помощью JS.

Переменную PHP передать в JS думаю сможешь:
Код

JSvar = <? echo  $_GET['cena_podscitannaja']; ?>;


Вот так примерно я себе это представляю. 
PM MAIL   Вверх
Enya
Дата 8.5.2006, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



sugee, вроде понятно. Но знаний сделать такой финт у меня не хватит. Если не сложно можно кодом. smile  


--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
Pitc
Дата 8.5.2006, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Можно использовать ajax и сделать так 

Код

<script type="text/javascript">
function ajaxRead(file){                                                        // функция динамической подгрузки текста из удалённых файлов

        var xmlObj = null;
        if(window.XMLHttpRequest) xmlObj = new XMLHttpRequest();
        else if(window.ActiveXObject) xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
        else return;

        xmlObj.onreadystatechange = function(){
                if(xmlObj.readyState == 4){
                        printer(xmlObj.responseText);                        // функция обработки полученного текста
                }
                if(xmlObj.readyState == 1){
                          waiter();                                                                // функция обработки загрузки
                }
        }

        xmlObj.open ('POST', file, true);
        xmlObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

        var request=handler();                                                        // функция построения POST запроса
        xmlObj.send(request);
}

function handler() {
        var c=document.getElementById('c').value;
        var cp=document.getElementById('cp').value;
        return 'a='+c+'&b='+cp;
}

function printer(text) {
        document.getElementById('ajax_body').innerHTML=text;
}

function waiter() {
        document.getElementById('ajax_body').innerHTML='Подождите....';
}

function read(file) {
        ajaxRead(file);
}
</script>


</head>

<script>
function aaa()
{
forma = document.form1;
x = forma.cena.value;
forma.cena_podscitannaja.value = x*10;
}
</script>
<div id='ajax_body'></div>
<form name="form1">
<input type="text" id="c" name="cena" onchange="aaa();" onkeydown="aaa();" onkeyup="aaa();" onblur="aaa();">
<input type="text" id="cp" name="cena_podscitannaja">
<input type="button" onclick="read('2.php');" value="Добавить">
</form>


2.php

Код

<?php
if(isset($_POST['a'])) {
echo "Sum: <input type='text' value='".$_POST['a']."'>";
}
?>

 
PM MAIL ICQ   Вверх
sugee
Дата 8.5.2006, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Знаешь, Enya,  я бы советовал тебе обратиться с этим вопросом в раздел JavaScript.  Если ясно сформулируешь вопрос - тебе помогут.  

Можешь отталкиваться от того что я тебе советовал, только вот этого
Цитата(sugee @  8.5.2006,  14:37 Найти цитируемый пост)
и если она есть генеришь поле типа hidden, где в value будет $_GET['cena_podscitannaja'].  
  здесь не нужно.  

Собсно никаких проблем тут быть не должно, просто я JS не знаю.   
 
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.0497 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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