2012-01-24 2 views
1

Я хотел был бы иметь возможность выполнить php-скрипт в состоянии onclick, но каждая страница может содержать несколько кнопок, каждая из которых имеет другое действие для отправки. Я хочу, чтобы сценарий был выполнен, но я не хочу, чтобы страница была изменена.Выполнение скрипта php с аргументами переменных в AJAX?

Это должно выполнить UDP-клиент для изменения настройки в удаленной box.each кнопку отправить другое действие на другую плату, на самом деле мне нужно отправить 2 аргумента в скрипт.

что-то вроде этого мне нужно отправить: set_states.php ф = xxx.xx.xxx.xx & CMD = CR1

Спасибо за помощь!

+4

Просто найдите учебник ajax, в сети есть много. – xdazz

ответ

1

На самом деле не имеет значения, что такое URL. Важным является то, что HTML-глагол, который вы используете (получить, опубликовать, удалить, поместить) и ваш тип возвращаемого контента. URL-адрес может быть любым. Я бы просто использовал некоторую js-библиотеку, такую ​​как jquery. Проверьте их функции $ .get, $ .post, $ .ajax.

Если вы не используете библиотеку js, вам необходимо учесть все различия в различных браузерах. Обычно это происходит примерно так: http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_first

В вашем случае я бы использовал jquery (так как это позволит вам начать очень быстро). Поскольку ваши переменные указаны в URL-адресе, и вы не отправляете какие-либо другие данные, которые вы бы использовали, получите. Обычно для мутаторов вы должны использовать пост. Я не думаю, что это важно в вашем случае. Отбросьте следующий скрипт на веб-странице (вносить изменения по мере необходимости):

<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script> 
<script> 
$(function(){ 
    $('#the-id-of-your-button').live('click',function(){ 
     $.get('set_states.php?ip=xxx.xx.xxx.xx&cmd=CR1',function(return){ 
      alert('success'); 
     }); 
    }); 
}); 
</script> 

Первая часть: $('#the-id-of-your-button').live('click' часы браузер в смысле, чтобы увидеть, если появляются какие-либо элементы, которые соответствуют и связывает события нажатия на них. Живой активно оживает домены в каком-то смысле. Щелчок - это обработчик, а $ ('# the-id-of-your-button') - это селектор. Следующая часть:

function(){ 
     $.get('set_states.php?ip=xxx.xx.xxx.xx&cmd=CR1',function(return){ 
       alert('success'); 
     }); 
    }); 

что происходит, когда происходит событие click. Мы называем это анонимной функцией. Его можно переписать в виде:

function onButtonClick(){ 
     $.get('set_states.php?ip=xxx.xx.xxx.xx&cmd=CR1',function(return){ 
       alert('success'); 
     }); 
    }); 
    $('#the-id-of-your-button').live('click',onButtonClick()); 

или что-то в этом роде, но вот только просто, чтобы помочь вам понять, что происходит.

Следующая часть:

$.get('set_states.php?ip=xxx.xx.xxx.xx&cmd=CR1',function(return){ 
      alert('success'); 
    }); 

является запрос Ajax и функцию для выполнения, если она успешно возвращает. В этом случае он просто просто предупредит нас.

О, также: $(function(){});, который обертывает все, говорит нам запустить сценарий, когда страница будет готова. Soooo после того, как страница будет готова, мы включим живую команду для просмотра кнопок. Возможно, вам это не понадобится (я знаю, что есть случаи, когда это не важно, но я надел его на всякий случай).

Возможно, вам потребуется немного настроить его :).

+0

Честно говоря, я абсолютно не знаком с AJAX, сценарий, который я хочу исполнить, вообще не будет выводить. Так я не знаю, что лучше всего использовать? – Speedy2k

+0

Ahh, хорошо, так что быстрое эмпирическое правило почти всегда, когда у вас есть функция/скрипт, который действует как мутатор (тем, что он что-то модифицирует, но не обязательно возвращает что-либо), это должно быть сделано с использованием сообщения. Get подразумевает, что вы извлекаете данные. Вы должны использовать пост, и в этом случае вы должны использовать jquery, поскольку это очень просто. Я уточню свой ответ. – Parris

+0

@Parris Вам следует просмотреть свой ответ ... URL-адрес наиболее важен в запросе ajax, jquery не является каркасом, это библиотека. – Tudor

Смежные вопросы