[JavaScript, AJAX] Задай вопрос, получи ответ

Discussion in 'PHP' started by banned, 9 Jun 2007.

Thread Status:
Not open for further replies.
  1. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    функция split:
    http://javascript.ru/String/split
     
  2. PenSpinner

    PenSpinner Member

    Joined:
    9 Dec 2008
    Messages:
    51
    Likes Received:
    5
    Reputations:
    0
    Всем привет, нужна помощь

    есть таблица
    HTML:
    <table> <tr><td><select><option value='nothing'>---</option>
    			<option value='o1'>One</option> 			
    			<option value='o2'>Two</option> 			
    			<option value='o3'>Three</option></select></td> 	
    	    <td><select><option value='nothing'>---</option>
    			<option value='o1'>One</option> 		
    			<option value='o2'>Two</option> 			
    			<option value='o3'>Three</option></select></td></tr>
    	<tr><td><select><option value='nothing'>---</option>
    			<option value='o1'>One</option> 			
    			<option value='o2'>Two</option> 			
    			<option value='o3'>Three</option></select></td> 	
    	    <td><select><option value='nothing'>---</option>
    			<option value='o1'>One</option> 		
    			<option value='o2'>Two</option> 			
    			<option value='o3'>Three</option></select></td></tr>
    </table>
    надо, чтобы каждый пункт (один, два или три) можно было выбрать только один раз во всей таблице. выбрал в первом меню "один", в других его уже нет. когда всё выбрано, в остальных меню оставить только первый пункт ("---")

    как реализовать?
     
    #2502 PenSpinner, 30 Jul 2010
    Last edited: 30 Jul 2010
  3. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    http://www.tigir.com/javascript_select.htm
     
  4. PenSpinner

    PenSpinner Member

    Joined:
    9 Dec 2008
    Messages:
    51
    Likes Received:
    5
    Reputations:
    0
    пасиб, познавательно, буду разбираться

    upd
    теперь такой вопрос: ширина селекта устанавливается по самому большому элементу. то есть, если я этот самый боьшой элемент удалю скриптом, селект уменьшится. как сделать, чтобы этого не происходило и ширина оставалась прежней всё время?
     
    #2504 PenSpinner, 30 Jul 2010
    Last edited: 31 Jul 2010
  5. Mixon

    Mixon Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12

    Code:
    <select style="width:300px"><option value='nothing'>---</option>
    			<option value='o1'>One</option> 			
    			<option value='o2'>Two</option> 			
    			<option value='o3'>Three</option></select>
    http://www.htmlbook.ru/css/width.html
     
  6. Andres

    Andres Elder - Старейшина

    Joined:
    4 Apr 2008
    Messages:
    320
    Likes Received:
    119
    Reputations:
    0
    Как в JS сделать проверку на символы?
    Надо чтоб пользователь вводил числа от 1, это я сделал.
    Но есть уникалы, которые попытаються сымволы ввести, мне нужен запрет на символы в условии

    Code:
    if (ge('section').value <= 0) {
     alert('Должно быть больше 1); ge('section').focus(); return false;
    }
     
  7. Seravin

    Seravin Active Member

    Joined:
    25 Nov 2009
    Messages:
    475
    Likes Received:
    190
    Reputations:
    221
  8. Mixon

    Mixon Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    Кроме этого мона регуляркой,если более чётко нужно ограничить
    Code:
    if((new RegExp("^[0-9]+$")).test(ge('section').value)){
    ...
    }
     
  9. PenSpinner

    PenSpinner Member

    Joined:
    9 Dec 2008
    Messages:
    51
    Likes Received:
    5
    Reputations:
    0
    Mixon, спс

    вот есть у меня 8 селектов с именами one, two, three и т.д. Как сделать определённое действие с ими всеми?

    Code:
    var num = new Array('one','two','three','four','five','six','seven','eight');
    var i;
    for (i=0;i<8;i++) {
    document.form.num[i] - тут код
    }
    
    		
    так не пашет. не перебирать же всё вручную?
     
  10. erihtoney

    erihtoney Member

    Joined:
    3 Mar 2009
    Messages:
    91
    Likes Received:
    73
    Reputations:
    20
    Приветствую.
    Буду краток:
    как передать фокус input полю при загрузке страницы?
     
  11. Axel G

    Axel G New Member

    Joined:
    28 Jan 2009
    Messages:
    86
    Likes Received:
    3
    Reputations:
    3
    Хмм, как передать измененное пользователем значение инпута в яваскрипт, для последующей обработки?? ByID и ByName - не подходят, поскольку уже используются (при загрузке страницы присваиваю переменную).

    PHP:
    <script type="text/javascript"
    $(
    document).ready(function() { 
    var 
    thumb document.getElementById('thumb').value
    $(
    "#uploadify").uploadify({ 
     
    'script'         'flashup.php',
     
    'scriptData': {'thumb' thumb
    }); 
    }); 
    </script>

    <input type="text" name="thumb" size="3" value="190">
    Говорят есть какой-то обработчик, неделю уже мучаюсь, как решить задачу??
     
    #2511 Axel G, 3 Aug 2010
    Last edited: 3 Aug 2010
  12. PenSpinner

    PenSpinner Member

    Joined:
    9 Dec 2008
    Messages:
    51
    Likes Received:
    5
    Reputations:
    0
    <body onload='javascript:document.myform.myinput.focus()'>
     
  13. diGriz

    diGriz Elder - Старейшина

    Joined:
    11 Oct 2006
    Messages:
    138
    Likes Received:
    82
    Reputations:
    6
    2 Axel G

    Code:
    $(function() {
    		$("input[type='text']").change( function() {
    			alert($(this).val());
    		});
    });
    
     
    1 person likes this.
  14. akssell

    akssell New Member

    Joined:
    1 Aug 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    ЕСть приложения swf ) игра! а уровни игры в файлах xml!

    когда приложения в одной папке с файлами уровнями то все роботает но при загрузке его вконтакт оно неработает! помогите плиз!

    если можно в асю 644941770
     
  15. Darth Padla

    Darth Padla Member

    Joined:
    21 Jun 2010
    Messages:
    141
    Likes Received:
    25
    Reputations:
    8
    Хэлп!
    Не работает такая конструкция- есть два скрипта. Из одного подгружается в фрейм другой,и ждет отклика. Вот я сделал так:
    Code:
    //Первый скрипт:
    document.getElementById('id_фрейма').src="путь ко второму скрипту и GET параметры";//пашет
    answer==0;
    while(answer==0){//Где-то тут все виснет
    document.getElementById('id_строки_состояния').firstChild.nodeValue="Ожидается ответ...";
    }
    if(answer==1){
    }else{
    }
    
    
    
    //Второй:
    ....some php...
    switch($answer){
    case 0:?>
    <script>
         parent.answer++;//Эта строка не выполняется
    window.parent.forma.log.value+="Я честно выполнил parent.answer++;\n";//Это строка работает!
    </script>
    <?break;
    case 1:
    case 2:?>
    <script>
         parent.answer=1;
    </script>
    <?break;
    }
    

    Причем тот-же первый скрипт в друном месте грузит третий,скрипт, который результат отдает так:
    Code:
    		window.parent.forma.nogood.value+='<?echo $_GET['string'];?>\n';
    		parent.bad++;
    
    И все работает!
     
  16. Mixon

    Mixon Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    document.getElementById('id_фрейма').src="путь ко второму скрипту и GET параметры";//пашет
    answer==0; //<--- Вот это что такое?O_x
    while(answer==0){//Где-то тут все виснет

    задавать данные через = а зварнивать через ==,вот ты сравниваешь...
    И вобще,скрипт у тя странный,так сложновато что-то понять...ты или смотри в Консоль Ошибок или дай полный скрипт...а то по этому мало кто сможет помочь...
     
    #2516 Mixon, 5 Aug 2010
    Last edited: 5 Aug 2010
  17. Darth Padla

    Darth Padla Member

    Joined:
    21 Jun 2010
    Messages:
    141
    Likes Received:
    25
    Reputations:
    8
    Консоль ошибок молчит.

    answer==0; //<--Тут я просто опечатался,когда перепечатывал.
    Полный скрипт - 700 строк. Вот полностью функция, которая не рабоает:
    Code:
    
    function check(){
    	textt=forma.good.value;
    	array=textt.split('\n');
    	output="";
    	regxp1=/[a-zA-Z0-9]{8,10}/;
    	regxp2=/[a-z]/;
    	regxp3=/[A-Z]/;
    	regxp4=/[0-9]/;
    	for(i=0;i<array.length;i++){
    		document.getElementById("progressbar").style.width=(400*i)/array.length;
    		mass=array[i].split(':');
    		if(regxp1.test(mass[1]) && regxp2.test(mass[1]) && regxp3.test(mass[1]) && regxp4.test(mass[1])){
    
    		document.getElementById('workframe').src="check.php?mode=2&string="+mass[1];
    [COLOR=Yellow]			answer=0;
    			while(answer==0){
    				document.getElementById('staticinf').firstChild.nodeValue="Ожидается ответ...";
    			}
    [/COLOR]			document.getElementById('staticinf').firstChild.nodeValue="Ответ - "+answer;
    			if(answer==1){
    				forma.log.value+="Получен ответ от check,ура\n";
    				finded++;
    				array.splice(i,1);
    			}else{
    				if(!confirm(array[i]+' добавлять али нет?')){
    					output+=array[i]+'\n'
    				}else{
    					var adder = new XMLHttpRequest();
    					adder.onreadystatechange = processReqChange;
    					adder.open("GET",'check.php?mode=add&string='+mass[1],true);
    					adder.send();
    					finded++;
    					for(j=i;j<array.length;j++){
    						checkmass=array[j].split(':');
    						if(checkmass[1]==mass[1]){
    							array.splice(j,1);
    							finded++;
    						}
    					}
    				}
    			}
    		}else{
    			output+=array[i]+'\n'
    		}
    	}
    	forma.good.value=output;
    	document.getElementById('staticinf').firstChild.nodeValue="Всего найдено "+finded;
    }
    
    
    Обработчик (check.php):

    Code:
    switch($_GET['mode']){
    case "lowspeed":
    
    break;
    case "1":
    header("Content-type: text/plain; charset=windows-1251");
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Cache-Control: post-check=0, pre-check=0", false);
    $counter=fopen('hatethis.txt','a');
    fwrite($counter,"\n".$_GET['string']);
    fclose($counter);
    break;
    
    case "2":
    	$strings=file('hatethis.txt');
    	for($i=0;$i<count($strings);$i++){
    		[COLOR=Yellow]if($_GET['string']==$strings[$i]){?>
    			<script>parent.answer++;</script>
    			найдено
    		<?
    		break;
    		}
    	}
    	if($i==count($strings)){?>
    			не найдено
    			<script>
    				parent.answer=2;
    				window.parent.forma.log.value+="Я честно выполнил parent.answer=2;\n";//Это видно.(Эта строка срабатывает)
    			</script>
    	<?}[/COLOR]
    break;
    
    

    Кстати,еще один вопрос - есть у кого нибудь идеи, как это дело получше написать-
    Code:
    function asnum(charr){
    	switch(charr){
    	<?php for($i=32;$i<256;$i++){
    		if($i==34){
    			continue;
    		}
    		if($i==92){
    			continue;
    		}
    		echo "
    		case \"".chr($i)."\":asciicode=".$i.";break;";
    	}?>
    
    	}
    	return asciicode;
    }
    
     
    #2517 Darth Padla, 5 Aug 2010
    Last edited: 5 Aug 2010
  18. bratLP

    bratLP Member

    Joined:
    23 Dec 2009
    Messages:
    0
    Likes Received:
    6
    Reputations:
    10
    Подскажи, пожалуйста, как сделать в выскакивающем alert текст + кнопка, для перехода на другую стараницу

    Сейчас у меня вот так

    [​IMG]

    А хочу вот так

    [​IMG]

    Вот код

    Code:
    {if $cookie->isLogged()}
    <a class="button exclusive ajax_add_to_cart_button" rel="ajax_id_product_{$product.id_product|intval}" 
    
    href="{$base_dir}cart.php?add&amp;id_product={$product.id_product|intval}&amp;token={$static_token}">{l s='Add to 
    
    cart'}</a>
    {else}
    <a href="#" class="exclusive" onClick="javascript: alert('Возможность приобрести товар имеют только зарегистрированные пользователи');">Хочу</a>
    {/if}
    }
     
    1 person likes this.
  19. ZnikiR

    ZnikiR Member

    Joined:
    14 Jan 2009
    Messages:
    117
    Likes Received:
    21
    Reputations:
    -5
    bratLP
    Code:
    alert('Возможность приобрести товар имеют только зарегистрированные пользователи');
    if (confirm("Уверены, что хотите зарегаться?")){
    window.location = "http://www.google.com/"
    }
    
    Если я не ошибаюсь html разметку в алерт вставлять нельзя.
    Я бы лусше сделал так div
    display:none;
    position:absolute;
    z-index:1;
    При нажатие появляется твое сообщение.
    И возможность закрыть это окно.
    Если интересно,но не знаешь как сделать пиши в асю.
     
    #2519 ZnikiR, 5 Aug 2010
    Last edited: 5 Aug 2010
  20. PenSpinner

    PenSpinner Member

    Joined:
    9 Dec 2008
    Messages:
    51
    Likes Received:
    5
    Reputations:
    0
    :confused:
     
Thread Status:
Not open for further replies.