我一直在测试很多代码,但是我无法让它工作。 我想根据另一个下拉列表的值填充下拉列表。 编辑: 我的表名是zipcode,我有CITY,STATE,Zipcode,FULLSTATE和zipID STATE是FULLSTATE的缩写
我有: 邮政编码: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" onchange="populatelist">
<option value="empty" selected>--Select State--</option>
<?php echo $dd; ?>
</select>
<select id="city" name="city">
<option value="empty"> </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的:
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(); ?>
问题:如果我使用wordpress,我应该把我的help.php放在哪里? 我创建了一个名为“help”的自定义模板,然后在仪表板中创建了一个页面并分配了该模板。它是否正确?我将它上传到主题目录。也把它放在js文件夹中。我不知道我以前从未尝试过jquery:S
我该如何调用jquery? 我把它放在标题上:
<?php wp_enqueue_script('jquery'); ?>
<?php wp_head() ?>
<script type="text/javascript" src="<?php bloginfo("template_directory"); ?>/js/zipcode.js"></script>
</head>
我已经这样做了3天了,我已经筋疲力尽了。我真的不知道把参考页放在哪里
答案 0 :(得分: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=""> </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 ;
?>
我没有测试代码,但我认为它应该可行。如果您有任何疑问,请告诉我。
**确保正确加载Jquery
非常重要:从PHP 5.5.0开始,不推荐使用mysql_query
。您应该使用PDO或mysqli扩展。选中此项:http://cz1.php.net/mysql_query