СПАСИБО О ВЕЛИКИЙ ЧЕЛОВЕК!, наверно знающий инглиш
есть два способа обойтись без регулярки, но это от 6 до 12 строчек.
ну и конечно eval, спасите!
4arger, извини или извините, просто второй день уже мучаюсь.
на кой бы мне тогда вообще переменную v создавать, если бы оно было так просто.
я не знаю что находится в v.
конструкция вида:
var v="ya_ne_znay_chto_tyt";
v=/v/;
тоже не прокатывает.
смысл создания поста - узнать решение смысла поста.
смысл поста:
var v='q';
var s='bla bla q';
как найти v в s?
vccv добавил 20.06.2010 в 22:28
кстати, вариант с indexof не совсем то...
vccv добавил 20.06.2010 в 22:42
Tarry, блин, лучше бы подсказал чем тащиться, если знаешь
спасибо, skAmZ. правдо я уже сам догнал, только твой вариант отличается от моего наличием этих знаков ~ ? i
про i знаю,ненужен...остальные надо будет глянуть.
vccv добавил 24.05.2010 в 11:40
задача усложнилась
"'#block#.*_.*?/#block#.*_'s"
то что выделено, должно быть одинаковым.
vccv добавил 24.05.2010 в 11:42
тоесть вот "'#block#.*_.*?/#block#.*_'s"
vccv добавил 24.05.2010 в 11:57
может кто нить посоветует достойный ресурс по регуляркам (ru)
vccv добавил 24.05.2010 в 12:05
извиняюсь за не компетентность, с регуляркой разобрался, а по поводу ресурса вопрос открытый
если надо побыстрее начать получать бабло - быдлокодер в помощь, а потом искать творческую личность которая матерясь будет менять говно-кирпичики. Как не печально, имхо такова реальность.
vccv добавил 31.03.2010 в 17:05
правда если повезет еще и там есть кирпичики а не монолитный кусок дерьма)))
ход мыслей понятен, спасибо.
правда в случае с DirectoryIndex при отсутствие папки готу 404 и все дела.
И все же пойду наверное по вашему варианту, чтобы потом не застрять с get-ами и регулярками в php, да и наверное так будет быстрее.
всеже написал (заменяем checkbox и radio). может кому надо
проблемы по прежнему две:
1. не очень удобно изменять значение атребутов c помощью js
2. в опере при двойном щелчке открывается меню (походу для всех элементов inline)
вот так можно использовать
<style>
/* Js on*/
.operaCheckbRadioJs {
vertical-align:middle;
display:inline-block;
width:14px;
height:14px;}
/* Js off */
.operaCheckbRadio {}
</style>
<form action="" method="get">
1.<input type="checkbox" name="name[]" class="operaCheckbRadio" />
<input type="checkbox" name="name[]" class="operaCheckbRadio" /><br /><br />
2.<input type="radio" name="name2" class="operaCheckbRadio" />
<input type="radio" name="name2" class="operaCheckbRadio" checked="checked" />
disabled( <input type="radio" name="name2" class="operaCheckbRadio" disabled="disabled" id = "disabled" /> )
<input type="radio" name="name2" class="operaCheckbRadio" /><br /><br />
3.<input type="radio" name="name3" class="operaCheckbRadio" />
<input type="radio" name="name3" class="operaCheckbRadio" />
<input type="button" onclick="enabled('disabled')" value="enabled('disabled')" /><br /><br />
<input type="submit" value="Отправить" />
</form>
<script type="text/javascript" src="/myCheckbRadio.js"></script>
<script>
myCheckbRadio("/CheckbRadio/","operaCheckbRadio");
function enabled(id) {
document.getElementById(id).disabled = false;
document.getElementById(id).parentNode.onmouseout();
}
</script>
<?
$name = $_GET['name']?$_GET['name']:array();
echo '1.';
foreach($name as $k=>$v) echo 'k = '.$k.', v='.$v.';';
echo '<br />';
echo '<br />2.'.$_GET['name2'].'<br />';
echo '<br />3.'.$_GET['name3'].'<br />';
?>
сам код:
function myCheckbRadio(path,clss) { // кешируем иконки var newImg = Array(12); for (var i=0;i<newImg.length;i++) { newImg = new Image(); newImg.src = path+'CheckbRadio'+i+'.gif';} function UpCheckbRadio (Obj,e) { var first = Obj.firstChild; var imgpath; var chd = function (iObj,p1,p2,p3,p4) {return 'url('+newImg[iObj.checked?(iObj.disabled?p1:p2):(iObj.disabled?p3:p4)].src+')'} if(first.type == 'checkbox') { if (e == 'click') first.checked = first.disabled?first.checked:!first.checked; imgpath = e!='out'?chd(first,5,4,2,1):chd(first,5,3,2,0); Obj.style.backgroundImage = imgpath;} else if (e == 'click') { if (!first.disabled && !first.checked) { for (var i=0;i<document.getElementsByTagName('input').length;i++){ var se = document.getElementsByTagName('input').item(i); if (se.type == first.type && se.name == first.name && se.className == first.className) if(se != first) { se.checked = false; se.parentNode.style.backgroundImage = chd(se,'','',8,6)} else { first.checked = true; imgpath = 'url('+newImg[10].src+')'; Obj.style.backgroundImage = imgpath;} } } } else { imgpath = e!='out'?chd(first,11,10,8,7):chd(first,11,9,8,6); Obj.style.backgroundImage = imgpath;} } for (var i=0;i<document.getElementsByTagName('input').length;i++) { var pse = document.getElementsByTagName('input').item(i); if ((pse.type == "checkbox" || pse.type == "radio") && pse.className == clss) { pse.style.display = 'none'; var newCheckbRadio = document.createElement('span'); newCheckbRadio.className = clss+'Js'; newCheckbRadio.id = pse.id?newCheckbRadio.className+pse.id:''; pse.parentNode.insertBefore(newCheckbRadio,pse); newCheckbRadio.appendChild(pse); UpCheckbRadio(newCheckbRadio,'out'); newCheckbRadio.onclick = function () { if(this.firstChild.onclick != null) this.firstChild.onclick(); UpCheckbRadio(this,'click')} newCheckbRadio.onmouseover = function () { if(this.firstChild.onmouseover != null) this.firstChild.onmouseover(); UpCheckbRadio(this,'over')} newCheckbRadio.onmouseout = function () { if(this.firstChild.onmouseout != null) this.firstChild.onmouseout(); UpCheckbRadio(this,'out')} } } }
и картинки из оперы )
хотел сделать вид чекбоксов одинаковыми и при этом писать тег как обычно.
проблемы две:
1. так и не получилось копировать onclick,onmouseover и onmouseout
2. не передаются данные не get не post
<input type="checkbox" name="r1" id="g1" class="myCheckBox" checked="checked" />
<input type="checkbox" name="r2" id="g2" class="myCheckBox" disabled="disabled" />
<input type="checkbox" name="r3" id="g3" class="myCheckBox" />
<input type="submit" value="m get" />
.myCheckBox {
margin:0px;
padding:0px;
border:0px;
height:14px;
font-size:0px;}
function elemName(id) {return document.getElementsByTagName(id)};
function myCheckBox(path,clss) {
var newOnmouseover = function() {
if (!this.disabled) {
if (this.value=='on') this.style.backgroundImage = 'url('+path+'chekBox_c_o.gif)';
else this.style.backgroundImage = 'url('+path+'chekBox_o.gif)'}}
var newOnmouseout = function() {
if (!this.disabled)
if (this.value=='on') this.style.backgroundImage = 'url('+path+'chekBox_c_e.gif)';
else this.style.backgroundImage = 'url('+path+'chekBox_e.gif)'}
var newOnclick = function() {
alert('name='+this.name+'; checked='+this.checked);
if(this.value=='on') {
this.value='';
this.checked = false;
this.style.backgroundImage = 'url('+path+'chekBox_o.gif)'}
else {
this.value='on';
this.checked = true;
this.style.backgroundImage = 'url('+path+'chekBox_c_o.gif)'}}
var my = new Object();
for (var i=0;i<elemName('input').length;i++) {
var se = elemName('input').item(i);
if (se.className == clss && se.type == "checkbox") {
my = document.createElement('input');
my.type = 'button';
my.name = se.name;
my.className = se.className;
my.onclick = newOnclick;
my.onmouseover = newOnmouseover;
my.onmouseout = newOnmouseout;
my.id = se.id;
if(se.disabled) {
my.disabled = true;
my.style.backgroundImage = 'url('+path+'chekBox_d.gif)';}
else
if(se.checked) {
my.setAttribute('value','on');
my.value = 'on';
my.checked = true;
my.style.backgroundImage = 'url('+path+'chekBox_c_e.gif)';}
my.value = '';
my.checked = false;
my.style.backgroundImage = 'url('+path+'chekBox_e.gif)';}
se.parentNode.replaceChild(my,elemName('input').item(i));
myCheckBox('/img/','myCheckBox');
<?=$_GET['r1'];?>
в архиве картинки видов чекбокса оперы
ну да, сенкс, позже выложу код той ерунды для которой это все надо
vccv добавил 25.01.2010 в 08:08
function () {
chk.onclick.apply(chkNew);
onNew.apply(chkNew);
вот что находится в onclick, это же ссылки, возможно ли запихать сами функции