нажмите на ссылку, чтобы передать переменную сеанса на следующую страницу - PullRequest
0 голосов
/ 31 августа 2010

У меня есть страница, где я использую PHP-цикл while для отображения имен и адресов наших дилеров. Для ссылки по электронной почте я хочу, чтобы пользователь мог щелкнуть ссылку, после чего он перешел бы к форме, которая отправляет электронное письмо этому человеку.

Я знаю, что вы не можете смешивать Javascript и PHP, так как мне узнать, по какой ссылке щелкнул пользователь, чтобы я мог передать эту переменную в форму на следующей странице? Вот мой код:

<?php while($row = mysql_fetch_array($result)) { 
          if ($row['active'] == 1) {

?>

      <div id="dealer">

          <div id="dealername">
              <h3 style="float:left;"><?php echo $row['company']; ?></h3><br/>
              <p><?php echo $row['address1']; ?><br/>
                 <?php if($row['address2'] || $row['address3']) { 
                        echo $row['address2'] . ' ' . $row['address3'] . '<br/>'; } ?>
                 <?php echo $row['city']; 
                 if ($row['state']) {
                          echo ', ' . $row['state'];
                  }
                  echo '&nbsp;&nbsp;' . $row['zip']; ?>
                  <br />
                  <?php echo $row['country']; ?>

                  <br />
                  <br />
                  Phone: <strong><?php echo $row['phone1']; ?></strong><?php if ($row['phone2']) {
                      echo ' or ' . $row['phone2']; } ?><br/>
                  <?php if($row['fax']) { echo 'Fax: ' . $row['fax'];  } ?><br />
              </p>
          </div>

          <?php if ($row['email']) {
              echo '<div class="dealerEmail">'. // need help here . '</div>';

            } ?>

        <br class="clearall" />
        </div>




<?php }} ?>

Страница, на которой появляется этот код, извлекает данные из базы данных, используя инструкцию GET на основе URL-адреса, аналогичного «index.php? State = az».

Я пытался заставить ссылку электронной почты использовать формат «? Email = ...», но когда я перехожу на страницу дилер-email.php, в URL нет параметров, которые я не получаю. Вот почему я пытаюсь найти какой-то другой способ передачи какой-либо переменной на следующую страницу, в зависимости от того, по какой ссылке нажимает пользователь.

Надеюсь, это понятно. Заранее спасибо за помощь.

Ответы [ 3 ]

5 голосов
/ 31 августа 2010

это должно работать нормально:

<a href="somepage.php?email=<?php echo $row['email']; ?>">contact dealer</a>

и затем вы получаете данные на странице somepage.php:

if(isset($_GET['email']))
    $email = $_GET['email'];
else
    //redirect somewherelse
2 голосов
/ 31 августа 2010

Я знаю, что вы не можете смешивать Javascript и PHP

Это не правда. Javascript - это язык сценариев на стороне клиента, а PHP - сценарии на стороне сервера. Они работают в разное время, на разных машинах и будут работать нормально.

Смешивание Javascript и PHP может быть сложной задачей и может привести к ошибкам, но это определенно можно сделать, и часто это делается.

0 голосов
/ 31 августа 2010

Вы можете вообще пропустить форму электронной почты и включить атрибут mailto в свою ссылку.

<a href="mailto:<?php echo $row['email'];?>">contact dealer</a>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...