【问题标题】:Wordpress: Call a PHP Page with Javascript not workingWordpress:使用 Javascript 调用 PHP 页面不起作用
【发布时间】:2015-10-09 13:25:50
【问题描述】:

我尝试将带有“依赖下拉列表”(使用 Javascript)的 PHP 站点集成到我的 Wordpress 站点中。当我在“外部”Wordpress 运行 PHP 站点时(这意味着整个 URL,例如:“www.xxx.com/wp-content/themes/lawyerplus/upload.php”)然后一切都按预期工作 - 这意味着“依赖下拉列表”列表”将被填充,但是当我在 wordpress 中运行同一页面时:www.xxx.com/upload/ 然后 javascript 将不会运行,因此不会填充列表。

所以问题是:我如何告诉 Wordpress,它应该运行 PHP 文件中的 Javascript 文件,这些文件将使用 Wordpress 插件“MaGiKS Proper PHP Include”进行集成?

这是 upload.php 中将调用 Rubrik(Category) 的部分。这是有效的,因此将显示类别 (Rubrik)。

 <tr>
 <td>Rubrik*</td>
 <td><? include "test.php"; ?></td>
 </tr

这里是test.php的内容

 <?php include('config.php'); 

    mysql_query("SET CHARACTER SET 'utf8'");
    $query_parent = mysql_query("SELECT DISTINCT cat_id, category FROM category   order by category asc") or die("Query failed: ".mysql_error());
    ?>
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
   <title>Dependent DropDown List</title>
<script type="text/javascript" src="http://austrianweddingaward.at/wp-content/themes/lawyerplus/js/jquery.js"></script>
<script type="text/javascript">
jQuery(document).ready(function() {
    
	jQuery("#parent_cat").change(function() {
		jQuery(this).after('<div id="loader"><img src="http://www.austrianweddingaward.at/wp-content/themes/lawyerplus/img/loading.gif" alt="loading subcategory" /></div>');
		jQuery.get('http://www.austrianweddingaward.at/wp-content/themes/lawyerplus/loadsubcat.php?parent_cat=' + jQuery(this).val(), function(data) {
			jQuery("#sub_cat").html(data);
			jQuery('#loader').slideUp(200, function() {
				jQuery(this).remove();
			});
		});	
    });

});
</script>
</head>

<body>
<form method="get">
	<label for="category">Hauptkategorie</label>
    <select name="parent_cat" id="parent_cat">
        <?php while($row = mysql_fetch_array($query_parent)): ?>
        <option value="<?php echo $row['cat_id']; ?>"><?php echo $row['category']; ?></option>
        <?php endwhile; ?>
    </select>
    <br/><br/>
  
    <label>Unterkategorie</label>
    <select name="sub_cat" id="sub_cat"></select>
</form>
</body>
</html>

这里是loadsubcat.php的内容

 <?php 
include('config.php');


$parent_cat = $_GET['parent_cat'];
echo $parent_cat;


mysql_query("SET CHARACTER SET 'utf8'");
$query = mysql_query("SELECT * FROM subcategory WHERE cat_id = '$parent_cat'");
echo $query;
while($row = mysql_fetch_array($query)) {
	echo "<option value='$row[id]'>$row[subcategory]</option>";
}
?>

欢迎提出任何建议。

斯蒂芬

【问题讨论】:

标签: javascript php jquery wordpress


【解决方案1】:

您好,查看实际生成的 HTML 页面源代码,错误就变得很清楚:您的 javascript 代码中有 html 标记。实际上,您会在多个博客页面上发现同样的事情。一旦你解决了这个问题,一切都会好起来的。

我猜你正在使用 wordpress 文本编辑器来注入 javascript,但这似乎导致了一些问题。

当您打开您最喜欢的开发浏览器的 javascript 控制台/开发者工具时,您可以很快发现这一点。

<head><br />
<meta charset="utf-8"><br />
<title>Dependent DropDown List</title><br />
<script type="text/javascript" src="http://austrianweddingaward.at/wp-content/themes/lawyerplus/js/jquery.js"></script><br />
<script type="text/javascript">
jQuery(document).ready(function() {</p>
<p> jQuery("#parent_cat").change(function() {
        jQuery(this).after('
<div id="loader"><img src="http://www.austrianweddingaward.at/wp-content/themes/lawyerplus/img/loading.gif" alt="loading subcategory" /></div>
<p>');
        jQuery.get('http://www.austrianweddingaward.at/wp-content/themes/lawyerplus/loadsubcat.php?parent_cat=' + jQuery(this).val(), function(data) {
            jQuery("#sub_cat").html(data);
            jQuery('#loader').slideUp(200, function() {
                jQuery(this).remove();
            });
        }); 
    });</p>
<p>});
</script><br />
</head></p>

【讨论】:

  • 嗨,我正在从我的 upload.php 加载这个 test.php,它将通过 wordpress 插件集成,因此不会通过 wordpress 注入任何代码...
  • 啊,好吧,对不起.. 好吧,出于某种原因,wordpress 正在添加这些标签(为什么,实际上?..-> wordpress.org/support/topic/get_the_content-with-formatting )。应该可以通过将内联 javascript 放入主题文件夹中的单独文件中来处理此问题,然后以引用 jquery 的相同方式包含该文件(或者您似乎可以摆弄您的主题文件)
猜你喜欢
  • 2011-07-23
  • 1970-01-01
  • 2013-01-19
  • 1970-01-01
  • 2013-08-14
  • 1970-01-01
  • 2011-11-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多