2012-04-10 3 views
0

두 개의 드롭 다운으로 제작/모델 양식을 만들고 있습니다. make가 선택되면 해당 make에 대한 적절한 모델 목록이있는 모델 드롭 다운이 표시되고 다른 make에 대한 나머지 드롭 다운은 숨겨진 상태로 유지됩니다. 내가 겪고있는 문제는 텍스트 파일에 양식을 게시하는 것입니다. 모든 필드는 모델 필드를 제외하고 훌륭하게 게시됩니다.이 필드는 항상 마지막 드롭 다운에서 선택한 옵션을 게시합니다.이 옵션은 볼보 모델 목록입니다. 모델의 활성 목록에 대한 "car_model"변경 내에서 name = ""속성을 작성해야합니다. 내가 PHP를 양식 파일 쓰기 쓰기가<select>에서 <option>을 선택하는 방법에 따라 <select>의 이름 속성을 변경하는 방법은 무엇입니까?

<script> 
$(function() { 
    $('#makes').change(function() { 
     $('#car_models > div').hide(); 
     $('#car_models').find('#' + $(this).val()).show(); 
    }); 
}); 
</script> 

: 여기

<tr> 
    <td width="15%" class="label">Make:</td> 
    <td class="inputd"><select id="makes" name="car_make" class="input"> 
     <option value="Default">Please Select</option> 
     <option value="Acura">Acura</option> 
     <option value="Audi">Audi</option> 
     <option value="BMW">BMW</option> 
    </select> 
    </td> 
</tr> 
<tr> 
    <td width="15%" class="label">Model:</td> 
    <td class="inputd"><div id="car_models"> 
     <div id="Default" style="display:block"> 
      <select name="car_model"> 
      <option value="0">Please Select</option> 
      <option value="1">Choose Make First</option> 
      </select> 
     </div> 
     <div id="Acura" style="display: none;"> 
      <select name="car_model"> 
      <option value="0">Please Select</option> 
      <option value="CL">CL</option> 
      <option value="Integra">Integra</option> 
      <option value="Legend">Legend</option> 
      </select> 
     </div> 
     <div id="Audi" style="display: none;"> 
      <select name="car_model"> 
      <option value="0">Please Select</option> 
      <option value="A3">A3</option> 
      <option value="A4">A4</option> 
      <option value="A5">A5</option> 
      </select> 
     </div> 
     <div id="BMW" style="display: none;"> 
      <select name="car_model"> 
      <option value="0">Please Select</option> 
      <option value="1 Series">1 Series</option> 
      <option value="3 Series">3 Series</option> 
      <option value="5 Series">5 Series</option> 
      </select> 
     </div> 
    </td> 
</tr> 

내가/보여주기 위해 사용하고 자바 스크립트의 div의를 숨기기 : 여기

나는이 코드의 간단한 예입니다 이름이 "car_model"인 드롭 다운의 값이므로 활성화되었을 때 고유 한 이름으로 변경하는 방법을 찾아야합니다.

감사합니다. 여기

내가 txt 파일에 쓰기를 사용하고 코드입니다 :

<?php 
$first_name = $_POST['first_name']; 
$last_name = $_POST['last_name']; 
$phone = $_POST['phone']; 
$email = $_POST['email']; 
$zip = $_POST['zip']; 
$year = $_POST['car_year']; 
$make = $_POST['car_make']; 
$model = $_POST['car_model']; 
$mileage = $_POST['car_mileage']; 
$data = "$first_name, $last_name, $phone, $email, $zip, $year, $make, $model, $mileage 
\n"; 
$fh = fopen("data.txt", "a"); 
fwrite($fh, $data); 
fclose($fh); 
print "Thanks"; 
?> 

답변

0
현재 코드의 문제는 당신의 선택 목록이 모두 같은 이름을 가지고 있고 모든 형태와 함께 제출하는 것입니다

, 이 보이지 않더라도. 같은 이름의 여러 변수가 제출되기 때문에 마지막 변수가 항상 우선합니다.

는 컨테이너를 숨기고에 더하여 <select> 요소를 사용하지 않도록이 문제를 해결하려면 다음과 같이 응답

$('#makes').change(function() { 
    $('#car_models > div').hide(); 
    $('#car_models select').prop('disabled', true); 
    $('#car_models').find('#' + $(this).val()).show() 
        .find('select').prop('disabled', false); 
}); 
+0

감사합니다, 그냥 코드를 변경하고 여전히 마지막 선택 메뉴로 일하고있다. 그것은 볼보 이외의 모든 브랜드에 대해 아무것도 쓰지 않습니다. –

+0

@TrentMarshall : 그것은 나를 위해 잘 작동합니다. 모든 것이 순조롭게 진행되고 있습니까? 수신 코드는 어떻게 생겼습니까? – Jon

+0

양식에서 잘 작동하는 것처럼 텍스트 파일에 양식을 쓰는 것만으로 문제가 발생합니다. 드롭 다운에 추가하는 것이 더 나을 것입니다. 방금 질문에 쓰는 데 사용하고있는 PHP 스크립트를 추가했습니다. –

관련 문제