éµä¾¿çªå·ãã使ãèªåã§è£å®ããajaxzip2ãID対å¿ããã
ãã¤ãéµä¾¿çªå·ãã使ãèªåã§è£å®ããajaxzip2ãå©ç¨ããã¦ããã£ã¦ã¾ãã便å©ã§å©ããã
ãã®ãã¼ã«ãname屿§ã使ããã¨ãåæã¨ãªã£ã¦ããã®ã§ãCakephpã§å©ç¨ãããã¨ããã¨ãnameãdata[Model][zip]ã¿ããã«ãªã£ã¦ãã¢ãã«åä½ã§nameã®å¤ãå¤ãã£ã¦ãã¾ãã®ã§ãã¡ãã£ã¨ä½¿ãã«ãããã¨ãããã¨ã§ãID屿§ã§ä½¿ããããã«ã¡ãã£ã¨ã ãä¿®æ£ããã
Cakeã®Viewãã¡ã¤ã«ã¯ãformãã«ãã¼ã§ä¸è¨ã®ããã«ãåinputãã©ã¼ã ã«idãæå®ãã¾ãããã¨ã¯ãJavascriptèªã¿è¾¼ãã§ãä¸è¨ã®ãããªãã¿ã³ãéµä¾¿çªå·å ¥åæ¬ã®æ¨ªã«ä»ãã¦ãã
<script src="/js/postcode/prototype.js"></script> <script src="/js/postcode/ajaxzip2.js" charset="UTF-8"></script> éµä¾¿çªå·<?php echo $form->input('zip' , array('id' => 'zipcode')); ?> <input type="button" onclick="AjaxZip2.zip2addr('zipcode','address1pref','address2');" value="使èªåç»é²" id="postalBtn" /> é½éåºç<?php echo $form->input('address1', array('id' => 'address1pref')); ?> 使<?php echo $form->input('address2', array('id' => 'address2')); ?>
ããã¦ãajaxzip2.jsã®æå¾ã«ããAjaxZip2.getElementByNameã®é¢æ°ãä¸è¨ã®ããã«å¤æ´ãï¼ååãByNameãªã®ã«ãä¸ã§ByIdãã¦ãã®ãã¡ãã£ã¨ãªã¨ã¯æããããï¼ã
ã³ã¡ã³ããä»ãã¦ãã¨ãããèªåã®ä¿®æ£ç®æã2ç®æã ãã§ãã
// ãã©ã¼ã nameããè¦ç´ ãåãåºã AjaxZip2.getElementByName = function ( elem, sibling ) { if ( typeof(elem) == 'string' ) { /*var list = document.getElementsByName(elem); */ var list = document.getElementById(elem); //change ichikawa if ( ! list ) return null; return list; // add ichikawa if ( list.length > 1 && sibling && sibling.form ) { var form = sibling.form.elements; for( var i=0; i<form.length; i++ ) { if ( form[i].name == elem ) { return form[i]; } } } else { return list[0]; } } return elem; }