PDA

View Full Version : سوال: id خبر را چطوری بگیرم تا با $.post بفرستم؟



farhadfery
یک شنبه 08 اسفند 1389, 15:00 عصر
با سلام خدمت هر کس که این تاپیک را می خواند.
یک لینک دارم به صورت زیر که می خوام وقتی روش کلیک می شه مقدار id را به دست بیارم تا با $.post ارسال بشه. چی کار باید کرد؟:گیج:

news.php?id=138

mehdi.mousavi
یک شنبه 08 اسفند 1389, 18:13 عصر
سلام.
با فرض اینکه لینک شما چیزی شبیه این باشه:


<a href="news.php?id=138">Click Here</a>

می تونید بدین شکل عمل کنید:


$('a').click(function () {
var matches = $(this).attr('href').match(/\d+$/g);
if (matches) {
var id = matches[0];
//Do whatever you would like to do with this id!
}
return false;
});


موفق باشید.

farhadfery
دوشنبه 09 اسفند 1389, 15:06 عصر
ممنون. می شه در مورد match توضیح بدید که این آرگومان هاش یعنی چی؟ منظورم اینه که چطوری یک match دلخواه باید درست کنم که مثلا با farhadfery@gmil.com قسمت gmail آنرا به دست بیارم..

mehdi.mousavi
سه شنبه 10 اسفند 1389, 19:37 عصر
ممنون. می شه در مورد match توضیح بدید که این آرگومان هاش یعنی چی؟ منظورم اینه که چطوری یک match دلخواه باید درست کنم که مثلا با farhadfery@gmil.com قسمت gmail آنرا به دست بیارم..

سلام.
به اون Argument ای که می بینید، میگن یک Pattern. هنگام استفاده از Regular Expression ها، شما Pattern ای تعریف می کنید که تابع match بر اساس اون الگو، ورودیش رو بررسی میکنه ببینه آیا Pattern مورد نظر در اون ورودی وجود داره یا خیر. اگر وجود داشته باشه، اونو بصورت آرایه ای از مقادیر به شما برمیگردونه... (توضیحی که دادم بسیار ناقصه، فقط برای اینکه فعلا درگیر جزییات RegEx ها نشید).

برای نشون دادن یک Pattern در JavaScript، میتونید Pattern مورد نظر رو بین دو علامت / بنویسید. بطور مثال:

/\d+/

داره یک الگو رو نشون میده:
\d یعنی digit (اعداد 0 تا 9) (خود 9 رو هم شامل میشه).
+ یعنی "یکی یا بیشتر".

حالا رو هم دیگه چی میشه؟ یعنی بخشی از string رو بهم بده که حداقل یک digit (یا بیشتر) در اون وجود داشته باشه. حالا ببینیم $ یعنی چی (البته تو Pattern ای که نوشته بودم، یعنی

/\d+$/

$ یعنی "انتهای خط"...

پس تا اینجا میشه: بخشی از string رو بهم بده که حداقل یک digit (یا بیشتر) در اون وجود داشته باشه و اون عدد در انتهای رشته اومده باشه.

خوب، حالا ببینیم

/\d+$/g

یعنی چی...

g یعنی global. یعنی به اولین Match رسیدی صبر نکن... (که خوب، تو این مثالی که من زده بودم، اصلا نیازی بهش نداریم و میتونید g رو حذف کنید). g معمولا برای replace کردن الگویی با رشته مورد نظر استفاده میشه و ...

روی اینترنت جستجو کنید، مقاله های متفاوتی میتونید پیدا کنید که بهتون چگونگی نوشتن یک Regular Expression رو یاد میده (اینم یک نمونه (http://lawrence.ecorp.net/inet/samples/regexp-intro.php)).

موفق باشید.