2015-05-08 2 views
0

ОК, так что вот мой немного сложный вопрос для вас, ребята.Отправка нескольких входных значений с помощью PHP и WordPress

У меня есть сайт WordPress, где пользователь может добавлять товары в категорию, есть функциональность, которая отображает отсортированные продукты на одной странице. Здесь довольно много коды из одного продукта:

<td><input class="cbx" type="checkbox" name="product" value="product"> </td> 
<td class="bright"><?php the_title(); ?> <input class="ptitle" type="hidden" name="ptitle" value="<?php the_title(); ?>"></td> 
      <td class="bright">box</td> 
      <td class="bright">height</td> 
      <td class="bright">price</td> 
      <td> <input class="count" type="text" name="<?php echo $post->ID; ?>count" maxlength="4"></td> 
</tr> 

Этого код зацикливаются и отображают в виде меток на другом archive.php. На archive.php у меня есть JQuery скрипт, который отправляет данные из формы в mail.php вставил ниже (я раздел его немного для лучшей видимости):

<?php 
// Fetching Values from URL. 
$email = $_POST['email']; 
$place = $_POST['place'] ; 
$street = $_POST['street'] ; 
$code = $_POST['code'] ; 
$email = filter_var($email, FILTER_SANITIZE_EMAIL); 
if (filter_var($email, FILTER_VALIDATE_EMAIL)) { 
$subject = 'new message'; 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$headers .= 'From:' . $email. "\r\n"; 
$template = '<div><br><b>Adress:</b><br> '.$street.'<br>'. $code.'  '.$place.'<br>'. '<br><b>Email:</b> ' . $email . '<br>' 
$sendmessage = "<div>" . $template . "</div>"; 
$sendmessage = wordwrap($sendmessage, 70); 
mail("[email protected]", $subject, $sendmessage, $headers); 
echo "success."; 
} else { 
echo "<span>*incorrect email*</span>"; 
} 

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

У меня нет проблем с отправкой предопределенных входов, но когда я получаю динамические данные (есть несколько продуктов), я не знаю, как с этим справиться. Все, что я имею в виду, это создание массива и цикла foreach.

Я признателен за любые советы, как справиться с этим :)

ответ

0

Ну, я сумел сделать это с небольшим количеством JQuery и PHP

Прежде всего, я меняюсь имя атрибута на CheckBox мыши с JQuery чтобы определить, если продукт будет вывешен

$("input[type='checkbox']").click(function() { 
    if ($(this).is(':checked')) { 
    $(this).closest('tr').find('input').attr('name', 'title[]'); 

    }else { 
    $(this).closest('tr').find('input').attr('name', ' '); 
    } 
});  

то, так как название атрибут является массивом, я добавил функцию Еогеаспа в моем mail.php

$title = $_POST['title'] ; 
$tstring = ""; 
foreach($title as $key => $value){ 
    $tstring .= '<td style="border-right:1px solid #333;text- align:center">'.$value.'</td>'; 
} 
+0

Вы не правильно очищаете входные данные, это небезопасно. Прочитайте это https://codex.wordpress.org/Validating_Sanitizing_and_Escaping_User_Data –

+0

Конечно, я упростил свой код, чтобы сосредоточиться на фактическом ответе на проблему – user3323095

Смежные вопросы