2015-07-27 2 views
0

У меня есть два массива и объект. Один массив кодирует коды продуктов, а другой содержит их количества. Например, первое количество в массиве величин представляет собой количество кода продукта, которое является первым в массиве кода продукта. У меня также есть объект, содержащий данные клиента. Это будет выглядеть примерно так:Как форматировать текст в функции mailto

customer={ 
name:' firstname lastname', 
email: '[email protected]', 
company: "company name", 
phone_number: 'phone number', 
} 

массивы будет выглядеть следующим образом:

product_codes=[code_1; code_2; code_3]; 
quantities=[23, 56, 45]; 

Говорят, что все это время по почте [email protected]

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

..... ..............................

Имя: customer.name

электронная почта: customer.email

название компании: customer.company

телефонный номер: customer.phone_number

код продукта 1: соответствующее количество

код продукта 2: соответствующее количество

код продукта 3: соответствующее количество

......... ......................................

Я также хотел бы иметь возможность добавьте любые другие заданные коды и количества, так как я не уверен, сколько их будет. Возможно ли это? Если да, то как? Пожалуйста, объясните, чтобы я мог не только использовать его, но и понимать, как он работает. Благодаря!

Если я недостаточно прояснился, сообщите мне, чтобы я мог редактировать его для большей ясности.

+0

'product_codes' не вылеплены как массив здесь. – Marc

ответ

1
var sendEmail = function() { 

    var customer, body, quantities, product_codes;  

    customer = { 
    name: 'First Last', 
    email: '[email protected]', 
    company: 'Company', 
    phone_number: 'phone number', 
    } 

    body = 'Name: '+ customer.name; 
    body += '\nEmail: '+ customer.email; 
    body += '\nCompany: '+ customer.company; 
    body += '\nPhone Number: '+ customer.phone_number; 

    product_codes = ['code_1', 'code_2', 'code_3']; 
    quantities = [23, 56, 45]; 

    for(var i = 0; i < product_codes.length; i += 1) { 
    body += '\nProduct Code '+ product_codes[i] +': '+ quantities[i]; 
    } 

    subject = 'Your Subject'; 

    window.location = 'mailto:[email protected]?body='+ encodeURIComponent(body) +'&subject='+ encodeURIComponent(subject); 

}; 

// execute this function when the user clicks the #send-email button 
var button = document.getElementById('send-email'); 
button.addEventListener('click', sendEmail); 

This is how the email will look like

+0

Спасибо! это именно то, что мне нужно. –

+0

как бы установить тему с этим? –

+0

Благодарим за редактирование –

1

я хотел бы построить строку в функции:

HTML:

<a href="#" id="thelink">Click to Email</a> 

JAVASCRIPT:

//stuff you specified... 
var customer={ 
    name:' firstname lastname', 
    email: '[email protected]', 
    company: "company name", 
    phone_number: 'phone number', 
} 
var product_codes=['alpha', 'beta', 'gamma']; 
var quantities=[23, 56, 45]; 

/* Assign a click action onto the link */ 
var yourLink = document.getElementById("thelink"); 
yourLink.onclick = function() { 
    var elf = "%0A"; //Encoded Line Feed 
    mailtoBody = "Name: " + customer.name + elf 
       + "Email: " + customer.email + elf 
       + "Company Name: " + customer.company + elf 
       + "Phone Number: " + customer.phone_number + elf; 
    for (var i=0; i < product_codes.length; i++) { 
     mailtoBody += product_codes[i] + ": " + quantities[i] + elf; 
    } 
    location.href = "mailto:[email protected]?body=" + mailtoBody; 
} 

Вот рабочий пример: http://jsbin.com/kigutuhiqa/edit?html,js,output

1

Это звучит для меня как вы хотите построить тело сообщения. Если это так, вы можете создать функцию, которая строит тело вашего сообщения, используя три объекта, которые вы упомянули: клиент, коды и количество.

Например, вы можете сделать что-то вроде

function buildBody(cust, codes, quant){ 
    var body = ""; 

    body += "Name: " + cust.name + "\n"; 
    body += "Email: " + cust.email + "\n"; 
    body += "Company Name: " + cust.companyname + "\n"; 

    for(var i=0; i<codes.length; ++i) 
     body += "Product Code " + codes[i] + ": " quant[i] + "\n"; 

    return body; 
} 

Я не проверял этот код, но, надеюсь, вы получите идею.

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