Jump to content
  • 0

Получить переменную из адресной строки


Dzib
 Share

Question

Привет всем. Помогите пожалуйста с проблемой.

Адрес страницы на которой будет выполнятся код такого типа: mysite/question_edit?id=9

Какой самый простой способ получить вот это число 9 ?

Спасибо за ответы.

П.С

Если это возможно и через javascript чистый и через jquery то пожалуйста оба варианты.

Edited by Dzib
Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

window.location.search

Содержит часть адреса "?id=9"


var arr = /\?id=([0-9]+)/i.exec(location.search);//если совпадение не найдено вернет null
// в первом элементе массива будет содержатся вся искомая подстрока, так что если не null берем 2-й элемент.
if(arr != null) var id = arr[1];

Лучше вот так.

Edited by wwt
Link to comment
Share on other sites

  • 0

Как вариант можно и через метод split разбить на подстроку.

var str = window.location.search.split('id='); //разбиваем подстроку на массив.

if (str[1].match(/\d/) != null) alert(str[1]) //берем из него второй элемент и проверяем число это или нет, Если не null показываем.

Edited by viv
Link to comment
Share on other sites

  • 0

Как вариант можно и через метод split разбить на подстроку.

var str = window.location.search.split('id='); //разбиваем подстроку на массив.
if (str[1].match(/\d/) != null) alert(str[1]) //берем из него второй элемент и проверяем число это или нет, Если не null показываем.

/?pid=7&id=9

Все, приехали.

Link to comment
Share on other sites

  • 0
Все, приехали.

Условия задачи ЧИТАЕМ:

Адрес страницы на которой будет выполнятся код такого типа: mysite/question_edit?id=9 Какой самый простой способ получить вот это число 9 ?

Люди, кому интересно, s0rr0w несет чушь здесь: http://forum.htmlbook.ru/index.php?showtopic=44437&view=getlastpost Я там процитировал его это нечто, читайте последний мой пост)) :rofl:

Link to comment
Share on other sites

  • 0

Условия задачи ЧИТАЕМ:

Адрес страницы на которой будет выполнятся код такого типа: mysite/question_edit?id=9 Какой самый простой способ получить вот это число 9 ?

Если вы всегда решаете задачу только в лоб, то конечно же, ваше решение вполне подойдет. Можно, правда, выкинуть лишний кусок со сплитом, потому что потом все равно используются регулярные выражения, так почему бы сразу не искать нужные цифры?

if (str.match(/[?|&]id=(\d+)&*$/)) alert(RegExp.$1);

При такой регулярке уже все равно, где именно будет этот параметр, хоть в середине строки, хоть в конце.

Да, и проверять на цифры не обязательно регулярным выражением, можно пользоваться некошерным хаком. Так как название явно указывает на целочисленку, причем положительную, то можно использовать

var st = "12";
if( 0|st ) alert('int');

Edited by s0rr0w
Link to comment
Share on other sites

  • 0
Можно, правда, выкинуть лишний кусок со сплитом

Конечно это же как вариант, читать надо посты.

if( 0|st ) alert('int');

А вот такие конструкции причем начинающим лучше вообще не писать. Это же не очевидно для него.

Если вы всегда решаете задачу только в лоб

Конечно в лоб. ТС явно просит достать ему девятку самым простым способом и ни где не упоминает о какой либо универсальности.

Link to comment
Share on other sites

  • 0

народ, а че, разве вот так нельзя?


<script type="text/javascript">
var GetId = <? if(!empty($_GET['id'])) {echo $_GET['id'];} ?>;
</script>

можно =) но код придется подправить ибо если вдруг параметра id нет то в js будет синтакс еррор:


<script type="text/javascript">
var GetId = ;
</script>

значит нужно как-то так:


<script type="text/javascript">
var GetId = <?=(!empty($_GET['id'])?$_GET['id']:"null");?>;
</script>

Link to comment
Share on other sites

  • 0

wwt, ну согласись что так лучше, чем js-ом получать и разбирать параметры урл строки?

Да, это наверное один из оптимальных вариантов, если нет никаких факторов которые бы заставили это делать на стороне клиента, то наверное лучший.

Edited by wwt
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy