<form action="<?php bloginfo('url'); ?>/color-search/" method="post" accept-charset="utf-8" name="color-search">
<select name="color-choice" id="color-choice">
<option value="">Choose a Color</option>
<option value="Black">Black</option>
<option value="Blue">Blue</option>
<option value="Brown">Brown</option>
<option value="Gray">Gray</option>
<option value="Green">Green</option>
<option value="Orange">Orange</option>
<option value="Purple">Purple</option>
<option value="Red">Red</option>
<option value="Pink">Pink</option>
<option value="White">White</option>
</select>
</form>
<script type="text/javascript">
$("#color-choice").change(function() {
$(this).closest("form").submit();
});
</script>
이 코드는 내 사이드 바에서 렌더링됩니다. 드롭 다운이 처음 변경되면 브라우저가 양식을 http://myurl/color-search/에 올바르게 게시하고 해당 페이지의 코드가 결과를 올바르게 렌더링합니다.일치하지 않는 자바 스크립트 양식 제출
if(!empty($_POST['color-choice'])) {
$pageColor = $_POST['color-choice'];
}
합병증이 있습니까? 결과 페이지 (http : // myurl/color-search)에는 정확히 같은 양식이 있습니다. 드롭 다운을 변경하면 제출되지만 PHP는 POST 데이터를 가져 오지 않습니다.
그래서 질문은 다음과 같습니다. 다른 페이지에서 게시 할 때와 비교하여 자체 URL로 다시 게시 할 때 왜이 양식이 올바르게 POST되지 않습니까?
의미가 없습니다.
P. 양식의 jQuery 처리가 약간 무거 우다. 나는 원래 onchange = "this.form.submit();"을 사용했다. 그러나 그것이 똑같이 행동 할 것인지를보기 위해 바 꾸었습니다. 같은 오류가 계속 발생했습니다. 이 표시 될 수 있도록 사전에
감사합니다 :) Clif
여기서 제공 한 제한된 코드에서 잘못된 것이 보이지 않습니다. PHP를 게시 할 수도 있습니다. 귀하의 컬러 검색 페이지에있는 PHP 코드가 어딘가에 $ _POST를 플러시하고 있다고 생각합니다. – Treffynnon
필자가 나열한 PHP는 페이지 상단에 있으며 파일의 $ _POST에 대한 유일한 참조입니다. 방금 GET을 사용하기 위해/PHP를 변경했으며 모든 시나리오에서 잘 작동합니다. 그래서 이상한! – clifgriffin
힌트 : 폼에 ID를 넣고 submit을 호출하는 것이 더 좋을 것입니다 :'$ ('frmColors') submit()' – Iogui