2013-01-17 2 views
0

사람들이 구매할 항목을 선택할 수있는 "주문"페이지가 다소 설정되어 있습니다. 그들이 "주문"을 클릭하면 페이지로 이동하여 동적으로 채워지는 드롭 다운을 각 항목에 대한 세부 정보를 선택할 수있게합니다. 이러한 드롭 다운은 루프에 있으므로 각 항목마다 고유 한 집합이 있습니다.JavaScript에서 PHP로 동적 데이터 전달

내 문제가 여기에서 시작됩니다. 주문 페이지에 하나의 항목 만 있으면 완벽하게 작동합니다. 드롭 다운에서 선택한 모든 정보는 내 PHP 스크립트로 가져 와서 전자 메일로 형식을 지정하고 주문을 내게 보냅니다. 주문에 항목이 두 개 이상있는 경우 페이지의 마지막 항목 만 보냅니다. 여기

<?php 

$asset = $_REQUEST['assetname']; 
$medium = $_REQUEST['sel']; 
$type = $_REQUEST['formats'] ; 
$framerate = $_REQUEST['framerate'] ; 
$color = $_REQUEST['color'] ; 
$body = <<<EOD 

Asset Name: $asset 
Asset format: $medium 
Format Type: $type 
Frame Rate/Resolution: $framerate 
Codec or Color Subsample: $color 
EOD; 

$results = <<<EOD 
<html> 
<head> 
<title>sent message</title> 
<style type="text/css"> 
</style> 
</head> 
<div align="center">One your order is submitted, a confirmation email will be sent to above email with order details.</div> 
</div> 
</body> 
</html> 
EOD; 
function spamcheck($field) 
{ 
    //filter_var() sanitizes the e-mail 
    //address using FILTER_SANITIZE_EMAIL 
    $field=filter_var($field, FILTER_SANITIZE_EMAIL); 

    //filter_var() validates the e-mail 
    //address using FILTER_VALIDATE_EMAIL 
    if(filter_var($field, FILTER_VALIDATE_EMAIL)) 
    { 
     return TRUE; 
    } 
    else 
    { 
     return FALSE; 
    } 
} 

if (isset($_REQUEST['email'])) 
{ 
    //if "email" is filled out, proceed 
    //check if the email address is invalid 
    $mailcheck = spamcheck($_REQUEST['email']); 
    if ($mailcheck==FALSE) 
    { 
     echo "Invalid input"; 
    } else { 
     //send email 
     global $body; 
     global $results; 
     $email = $_REQUEST['email'] ; 
     mail("[email protected]", "Subject: INCOMING ORDER", $body, "From: $email"); 
     echo "$results"; 
    } 
} else {//if "email" is not filled out, display the form 
    echo "<form method='post' action='mailform.php'> 
    Email: <input name='email' type='text'><br> 
    Subject: <input name='subject' type='text'><br> 
    Message:<br> 
    <textarea name='message' rows='15' cols='40'> 
    </textarea><br> 
    <input type='submit'> 
    </form>"; 
} 
?> 

내가 PHP 여전히 새로운 오전 ... 여기

<form name="mediumselect"> 
<table> 
<tr> 
    <td> 
     <select name="sel" onchange="selFormat(this);" style="width:200px"> 
     <option value="">-Please select delivery format-</option> 
     <option value="File">File</option> 
     <option value="Tape">Tape</option> 
     <option value="Disc">Disc</option> 
     </select> 
    </td> 
    <td> 
     <select name="formats" onchange="selRate(this)" style="width:150px"> 
     </select> 
    </td> 
    <td> 
     <select name="framerate" onchange="selColor(this)" style="width:150px"> 
     </select> 
    </td> 
    <td> 
     <select name="color" style="width:150px"> 
     </select> 
    </td> 
</table> 
</form> 

는 PHP입니다 ... 드롭 다운에 대한 코드 갈 수있는 더 좋은 방법이 있다면 이 일을하는 것에 대해 충고에 감사 할 것입니다.

답변

0

모든 $ body 값을 단일 문자열에 넣는 것이 좋습니다. 먼저 모든 항목을 반복하고 PHP 연결 ($ body. =)을 사용하여 문자열 $ body에 추가하십시오. 현재 하나의 값만 검색 중입니다. 아마도 필드의 이름을 바꾸려면 이름 뒤에 숫자가 몇 개인 지 그 필드에 대해 _REQUESTS를 반복하여 전자 메일의 $ body. = string에 넣으십시오.

+0

질문에서 무엇을 어떻게 이해했는지 나는 알지 못합니다. – Khez

+0

루프를 실행해야하는 정확한 횟수를 모르는 경우 연결이 가능합니까? – Peter

관련 문제