02.08.2017, 11:49
|
Аспирант
|
|
Регистрация: 02.08.2017
Сообщений: 33
|
|
Помогите решить проблему!
Доброго дня спецы!
Два дня не могу решить проблему.
На странице, с помощью скрытого инпута ->
<input type="hidden" name="ID" value="<?php echo esc_attr( $listing->ID ); ?>" />
Создаются поля, выпадающие списки, произвольные поля и так далее
Одно из них ->
<select name="cp_state" id="cp_state" class="dropdownlist required">
Как мне программно присвоить этому <select name="cp_state" id="cp_state" обработчик onchange="CityList(this)
Пробовал присвоить в файле custom-forms.php
$field_class = ( $result->field_req ) ? 'dropdownlist required' : 'dropdownlist';
$args = array( 'name' => $result->field_name, 'id' => $result->field_name, 'class' => $field_class, 'onchange' => 'CityList(this)' );
Но тогда этот обработчик во всех dropdownlist, а мне нужен только name="cp_state" id="cp_state"
Нужно всего лишь сделать вот так:
<select name="cp_state" id="cp_state"class="dropdownlist required" onchange="CityList(this)"> и всё.
А вот этот <select name="cp_state" id="cp_state" class="dropdownlist required"> штатный, создается самим движком.
Как еще можно сделать?
Подскажите!
|
|
02.08.2017, 11:55
|
Аспирант
|
|
Регистрация: 02.08.2017
Сообщений: 33
|
|
Я уже думал создать еще один <select name="cp_state2" id="cp_state2" class="dropdownlist required" с обработчиком onchange="CityList(this)"> СКРЫТЫЙ
и копировать или вставлять данные с cp_state в cp_state2
Но этот вариант как то не очень, так как в дальнейшем будет много зависимых селектов.
|
|
02.08.2017, 12:08
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,794
|
|
rdPavel, открой файл, который создает тебе эти формы и посмотри можно ли там свои атрибуты элементам присваивать или нет.
Во втором случае допили сценарий, либо нужный select руками на странице пропиши.
|
|
02.08.2017, 12:17
|
Аспирант
|
|
Регистрация: 02.08.2017
Сообщений: 33
|
|
Nexus,
Файл form-listing-details.php
<form name="mainform" id="mainform" class="form_step" action="<?php echo appthemes_get_step_url(); ?>" method="post" enctype="multipart/form-data">
<?php wp_nonce_field( $action ); ?>
<ol>
<span class="form-fields">
<li>
<div class="labelwrapper"><label><?php _e( 'Category', APP_TD ); ?></label></div>
<div class="ad-static-field"><strong><?php echo $category->name; ?></strong> <small><a href="<?php echo $select_category_url; ?>"><?php _e( '(change)', APP_TD ); ?></a></small></div>
</li>
<?php cp_show_form( $category->term_id, $listing ); ?>
</span>
<center><p class="btn1">
<input type="submit" name="step1" id="step1" class="btn_orange" value="<?php _e( 'Continue ››', APP_TD ); ?>" / >
</p></center>
</ol>
<input type="hidden" name="action" value="<?php echo esc_attr( $action ); ?>" />
<input type="hidden" name="ID" value="<?php echo esc_attr( $listing->ID ); ?>" />
Как раз последний <?php echo esc_attr( $listing->ID и формирует все эти поля, куда только я не совал onchange="CityList(this)" - срабатывает только у cp_state.
Если я его просто в открытом коде в браузере вставлю, всё чотко работает. До перезагрузки страницы.
|
|
02.08.2017, 12:25
|
Аспирант
|
|
Регистрация: 02.08.2017
Сообщений: 33
|
|
Сообщение от Nexus
|
rdPavel, открой файл, который создает тебе эти формы и посмотри можно ли там свои атрибуты элементам присваивать или нет.
Во втором случае допили сценарий, либо нужный select руками на странице пропиши.
|
В том то и дело, что можно свой селект создать и не парится.
Но задача использовать штатный cp_state так как он по всей системе, и в отборах, и фильтрах и в поиске и так далее
|
|
02.08.2017, 12:39
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,794
|
|
rdPavel, я бы так не стал делать, но это же wordpress))
ob_start();
cp_show_form( $category->term_id, $listing );
$select=ob_get_contents();
ob_end_clean();
$select=str_replace('<select ','<select onchange="CityList(this);" ',$select);
echo $select;
|
|
02.08.2017, 12:43
|
Аспирант
|
|
Регистрация: 02.08.2017
Сообщений: 33
|
|
|
|
02.08.2017, 12:47
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,794
|
|
rdPavel, а куда мой код был помещен?
PS. По-моему проще подключить к странице скрипт (судя по тому, что в атрибут вставляется наименование пользовательской функции, он уже подключен), в котором обратиться к селекту и повесить на него обработчик.
Последний раз редактировалось Nexus, 02.08.2017 в 12:51.
|
|
02.08.2017, 12:49
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,794
|
|
rdPavel,
<form name="mainform" id="mainform" class="form_step" action="<?php echo appthemes_get_step_url(); ?>" method="post" enctype="multipart/form-data">
<?php wp_nonce_field( $action ); ?>
<ol>
<span class="form-fields">
<li>
<div class="labelwrapper"><label><?php _e( 'Category', APP_TD ); ?></label></div>
<div class="ad-static-field"><strong><?php echo $category->name; ?></strong> <small><a href="<?php echo $select_category_url; ?>"><?php _e( '(change)', APP_TD ); ?></a></small></div>
</li>
<?php
ob_start();
cp_show_form( $category->term_id, $listing );
$select=ob_get_contents();
ob_end_clean();
$select=str_replace('<select ','<select onchange="CityList(this);" ',$select);
echo $select;
?>
</span>
<center><p class="btn1">
<input type="submit" name="step1" id="step1" class="btn_orange" value="<?php _e( 'Continue ››', APP_TD ); ?>" / >
</p></center>
</ol>
<input type="hidden" name="action" value="<?php echo esc_attr( $action ); ?>" />
<input type="hidden" name="ID" value="<?php echo esc_attr( $listing->ID ); ?>" />
|
|
02.08.2017, 12:52
|
Аспирант
|
|
Регистрация: 02.08.2017
Сообщений: 33
|
|
Nexus,
в <form name="mainform"
|
|
|
|