2014-03-07 4 views
0

나는 이것을 위해 많은 코드를 테스트 해 왔지만 제대로 작동하지 않습니다. 다른 드롭 다운의 값을 기반으로 드롭 다운을 채 웁니다. 편집 : 내 테이블 이름은 우편 번호 내가 도시, 주, 우편 번호, FULLSTATE 있고, zipID STATE 내가 가진 FULLSTATEMysql 다른 드롭 다운 선택에 따라 드롭 다운을 채우십시오.

의 약어입니다 :

<?php 
/* Template Name: Zipcode Help */ 
?> 
<?php get_header(); ?> 
<?php 
global $wpdb; 
$query = "SELECT * FROM zipcode group by FULLSTATE"; 
$result = mysql_query($query) or die(mysql_error()); 
while($row = mysql_fetch_assoc($result)) 
{ 
$dd .= "<option value='".$row['STATE']."'>".$row['FULLSTATE']."</option>"; 
} 
?> 
<select name="dropdown1" id="dropdown1" onchange="populatelist"> 
<option value="empty" selected>--Select State--</option> 
<?php echo $dd; ?> 
</select> 
<select id="city" name="city"> 
<option value="empty">&nbsp;</option> 
</select> 
<!--content of the page--> 
<div class="container-wrapper clearfix" id="main-content-container"> 
<div class="container"> 
<?php if (have_posts()) : while (have_posts()) : the_post();?> 
<?php the_content(); ?> 
<?php endwhile; endif; ?> 
</div> 
</div> 

<?php get_footer(); ?> 

JQuery와 PHP : 우편 번호

function populatelist() 
{ 
var qry=document.getelementbyid('dropdown1').value; 
var xmlhttp; 
if (window.XMLHttpRequest) 
{// code for IE7+, Firefox, Chrome, Opera, Safari 
xmlhttp = new XMLHttpRequest(); 
} 
else 
{// code for IE6, IE5 
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
} 
xmlhttp.onreadystatechange = function() 
{ 
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
{ 
}); 
} 
} 
xmlhttp.open("POST", "help.php", true); 
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
xmlhttp.send("qry="+qry); 
} 

참조 페이지 (help.php)

<?php 
/* Template Name: Help */ 
?> 
<?php get_header(); ?> 
<?php 
global $wpdb; 
$value=$_POST['qry']; 
$query = "SELECT * FROM zipcode where STATE like '$value'"; 
$result = mysql_query($query) or die(mysql_error()); 
while($row = mysql_fetch_assoc($result)) 
{ 
$ee .= "<option value='".$row['CITY']."'>".$row['CITY']."</option>"; 
}  
echo $ee; 
mysql_close(); 
?> 
<?php get_footer(); ?> 
,536,

질문 : Wordpress를 사용하고 있다면 어디에서 help.php를 써야합니까? 'help'라는 사용자 지정 템플릿을 만든 다음 대시 보드에 페이지를 만들고 해당 템플릿을 할당했습니다. 이 올바른지? 테마 디렉토리에 업로드했습니다. 또한 js 폴더 안에 넣으십시오. 나는 결코 jquery를 시도한 적이 없다. S

jquery는 어떻게 호출해야합니까? 나는 헤더에 넣어 : 이미 3 일이 일을 봤는데 난 너무 지쳤어

<?php wp_enqueue_script('jquery'); ?> 
    <?php wp_head() ?> 
<script type="text/javascript" src="<?php bloginfo("template_directory"); ?>/js/zipcode.js"></script> 
</head> 

. 참조 페이지를 어디에 넣을 지 모릅니다.

+0

두 번째 쿼리가 필요하지 않습니다. GROUP BY는 예상치 못한 결과를 초래할 수 있습니다. – Strawberry

답변

0

zipcode.php 파일에 다음 코드를 사용하십시오.

<?php 
/* Template Name: Zipcode Help */ 
?> 
<?php get_header(); ?> 
<?php 
global $wpdb; 
$query = "SELECT * FROM zipcode group by FULLSTATE"; 
$result = mysql_query($query) or die(mysql_error()); 
while($row = mysql_fetch_assoc($result)) 
{ 
    $dd .= "<option value='".$row['STATE']."'>".$row['FULLSTATE']."</option>"; 
} 
?> 
<select name="dropdown1" id="dropdown1"> 
    <option value="empty" selected>--Select State--</option> 
<?php echo $dd; ?> 
</select> 

<select id="city" name="city"> 
    <option value="">&nbsp;</option> 
</select> 

<!--content of the page--> 
<div class="container-wrapper clearfix" id="main-content-container"> 
<div class="container"> 
<?php if (have_posts()) : while (have_posts()) : the_post();?> 
<?php the_content(); ?> 
<?php endwhile; endif; ?> 
</div> 
</div> 

<script type="text/javascript"> 

$(function() { 

    $('#dropdown1').change(function() { 

     var value = $(this).val(); 

     if (value == "") { 

      $("#city").html("<option value=''>Select</option>"); 

     } else { 
      $.ajax({ 
       type: "POST", 
       url: "<?php bloginfo('template_directory'); ?>helper/help.php", 
       data: "value=" + value, 
       success: function (server_response) { 

        $("#city").html(server_response); 

       } 

      }); //$.ajax ends here 

     } //if else  
     return false 
    }); 

}); // function ends here 
</script> 

<?php get_footer(); ?> 

WordPress 테마 폴더 안에 helper라는 폴더를 만들고 helper.php 파일을 넣으십시오.

help.php 파일에서 다음 코드를 사용하십시오.

<?php 

$value = $_POST['value']; 

global $wpdb; 
$value= a_href; 
$query = "SELECT * FROM zipcode where STATE like '$value'"; 
$result = mysql_query($query) or die(mysql_error()); 
while($row = mysql_fetch_assoc($result)) 
{ 
    $ee .= "<option value='".$row['CITY']."'>".$row['CITY']."</option>"; 
}  
echo $ee ;  

?> 

나는 코드를 테스트하지 않았지만 제대로 작동해야한다고 생각합니다. 더 이상 질문이 있으면 알려주세요. mysql_query는 PHP 5.5.0 추천되지 않습니다 :

는 ** 확인 JQuery와 제대로

매우 중요로드되어 있는지 확인합니다. PDO 또는 mysqli 확장자를 사용해야합니다. 확인 : http://cz1.php.net/mysql_query

+0

그래서 내 html 양식을 포함하는 zipcode.php에 스크립트가 추가됩니까? 단지 2 파일 (zipcode.php - 양식 + 스크립트) 및 (help.php - 도우미 폴더에 넣기)를 가지고 떠날 때 – user3391847

+0

드롭 다운 1을 삭제해야합니까? 그렇다면 $ (function()) 안에 인구 표를 추가해야합니까? 여전히 작동하지 않습니다. 부분 바로 뒤에 zipcode.php 안에 js를 추가했습니다. 또한을 추가하여 스크립트를 닫습니다. – user3391847

+0

예 JS 스크립트는 양식이 있고 PHP 코드가 helper.php에 있어야하는 zipcode.php 파일에 추가되어야합니다. 당신은 'onchange = "populatelist"'와 js 함수를 사용하십시오. 위의 업데이트 된 코드를 확인하십시오. –

관련 문제