2015-07-20 3 views
0

Я пытаюсь интегрировать сайт PHP с «зависящим выпадающим списком» (используя Javascript) на мой сайт Wordpress. Когда я запускаю PHP-сайт «снаружи» Wordpress (что означает весь URL-адрес, например: «www.xxx.com/wp-content/themes/lawyerplus/upload.php»), тогда все работает так, как ожидалось, что означает «выпадающее меню зависимости» списки "будут заполнены, но когда я запустил ту же страницу в wordpress: www.xxx.com/upload/, то javascript не будет запущен, и поэтому списки не будут заполнены.Wordpress: вызов страницы PHP с Javascript не работает

Итак, вопрос будет: Как я могу сказать Wordpress, что он должен запускать файлы Javascript внутри файлов PHP, которые будут интегрированы с помощью Wordpress Plugin «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() { 
 
    
 
\t jQuery("#parent_cat").change(function() { 
 
\t \t jQuery(this).after('<div id="loader"><img src="http://www.austrianweddingaward.at/wp-content/themes/lawyerplus/img/loading.gif" alt="loading subcategory" /></div>'); 
 
\t \t jQuery.get('http://www.austrianweddingaward.at/wp-content/themes/lawyerplus/loadsubcat.php?parent_cat=' + jQuery(this).val(), function(data) { 
 
\t \t \t jQuery("#sub_cat").html(data); 
 
\t \t \t jQuery('#loader').slideUp(200, function() { 
 
\t \t \t \t jQuery(this).remove(); 
 
\t \t \t }); 
 
\t \t }); \t 
 
    }); 
 

 
}); 
 
</script> 
 
</head> 
 

 
<body> 
 
<form method="get"> 
 
\t <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)) { 
 
\t echo "<option value='$row[id]'>$row[subcategory]</option>"; 
 
} 
 
?>

С уважением, любые предложения.

Стефан

+8

Для того, чтобы люди могли вам помочь, вам нужно будет показать примерный код. В противном случае они не могут помочь отладить вашу проблему. – Relequestual

+0

1. Вы прокомментировали две эхо-строки в loadubcat.php? Неправильный html может послужить причиной того, что браузер не будет показывать ничего. 2. Вы проверили консоль javascript? Вы выполняете кросс-доменный запрос (который будет заблокирован, например, Chrome)? -> https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS и http://stackoverflow.com/questions/5351236/javascript-cross-domain-allow-other-domains – Filou

+0

Привет, Спасибо за ответ. См. По адресу: http://www.austrianweddingaward.at/wp-content/themes/lawyerplus/upload.php - там он работает. Когда вы смотрите: www.austrianweddingaward.at/upload и прокрутите до конца, вы увидите, что он не работает в Wordpress ... С уважением, Stefan – Bosstone

ответ

0

Привет так, глядя на фактический сгенерированного исходного кода страницы HTML ошибка становится ясно: у вас есть 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> 
+0

Привет, я загружаю этот test.php из моей загрузки .php, который будет интегрирован через плагин wordpress, поэтому никакой код не будет введен через wordpress ... – Bosstone

+0

ah ok, извините .. Ну, почему-то Wordpress добавляет те теги (почему, собственно? ..-> https://wordpress.org/support/topic/get_the_content-with-formatting).Должно быть возможным иметь дело с этим, поместив встроенный javascript в отдельный файл в папку вашей темы, а затем просто включите файл так же, как указано в jquery (или вы можете играть с файлами вашей темы, похоже) – Filou