הכנסת שדה HIDDEN ל webformblock
שלום,
יש אפשרות להכניס שדות HIDDEN ל webform block שיכילו ערכים שונים, שזה דבר נחמד מאוד.
העניין הוא שאני רוצה להכניס לשדה כזה שם של מוצר שנמצא ב URL ובערכי CCK של ה NODE . אני עובדת עם clean url.
יש את ההסבר הזה בדרופל מתחת ל : מרכיבי הטופס - > ברירת מחדל :
ערך ברירת המחדל של השדה.
Token values
You may use special tokens in this field that will be replaced with dynamic values.
all users:
* %site
* %date
* %get[key]
authorized users only:
* %username
* %useremail
* %session[key]
* %post[key]
* %request[key]
* %cookie[key]
* %server[key]
You can use %server[key] to add any of the special PHP $_SERVER variables, %session[key] to add any of the special PHP $_SESSION variables and %get[key] to create prefilled forms from the URL. %cookie, %request and %post also work with their respective PHP variables. For example %server[HTTP_USER_AGENT], %session[id], or %get[q].
אם שמים בשדה HIDDEN :
%get[q]
מקבלים :
node/xx
כאשר xx זה מספר ה NODE שממנו יצא הטופס.
איך אפשר בשיטה זו (או אחרת) לפי ההסבר שלהם לקבל את אחד מערכי ה CCK של אותו NODE ולשמור אותו יחד עם ערכי הטופס כשדה hidden
תודה.

הי, בתיאור של הטופס אתה צריך
הי,
בתיאור של הטופס אתה צריך להכניס קוד PHP:
<?php
$node = node_load($_GET["nodeID"]);
drupal_add_js(
"var VAR1 = ".drupal_to_js(variable_get('VAR1',$node->field_NAME[0]["value"])). ";" ,'inline');
drupal_add_js(
'$(document).ready(function(){
$("#edit-submitted-fieldname").val(VAR1).fadeIn("slow");
});',
'inline'
);
?>
זה עובד מצויין.
בהצלחה.
לא כל כך.... בתאור של הטופס
לא כל כך....
בתאור של הטופס זה לא מתקבל כי זה שדה של טקסט שמופיע באתר, בחלק של ה Additional Processing זה תקע את כל התהליך ולא עשה כלום, בשדה עצמו ב EDIT , בשדה שאני רוצה שיכנס הערך, ה PHP לא התפענח בכלל כנראה זה ערכים שלא תקפים שם.
אפוא בדיוק לשים את זה?
לטופס יש את הלשוניות של הגדרות, מרכיבי הטופס ו form validation .
תודה.
זה צריך להיכנס בשדה של
זה צריך להיכנס בשדה של התיאור. אבל, צריך לסמן את האופציה של PHP בהגדרות INPUT MASK.
אחרת זה באמת מופיע כטקסט.
אין אפשרות כזו זה מתייחס רק
אין אפשרות כזו זה מתייחס רק לשדה שאחריו ראה צלום מסך תראה אם זה בר ביצוע בכלל:
ההתייחסות היא לטופס כולו.
ההתייחסות היא לטופס כולו. תבחרי PHP CODE ותנסי.
שמתי את ה Input על PHP כמו
שמתי את ה Input על PHP כמו שהנחית, ושמתי את הקוד,
זה לא עושה תקלה אבל זה גם לא עושה כלום....
החלפתי את
$node->field_NAME[0]["value"]
עם שם השדה CCK שלי נניח product_name
ואת
edit-submitted-fieldname
במקום fieldname
השם של השדה hidden שנתתי בטופס, נניח productname
יש איזה מודול או כל דבר אחר מיוחד שצריך להיות מופעל כדי שזה יעבוד?
מקווה שהבנתי נכון את הנושא הזה .
האם את מעבירה את ה- nodeID
האם את מעבירה את ה- nodeID בכותרת:
webpage?nodeID=###
יש לדאוג גם שהאופציה של "מבוטל" לא תהיה מסומנת ואין ערך ברירת מחדל.
לא, אני עובדת עם clean url ,
לא, אני עובדת עם clean url , אחד הדברים הכי טובים בדרופל לדעתי...
ה URL נראה ככה:
http://www.mydomain.com/content/53/titleproductname
מבוטל - לא מסומן
אין ערך ברירת מחדל
ממש לא רציתי להעזר ב URL אלא להעזר בשדות שלמעשה קיימים כבר בתוך ה NODE כמו מספר ה NODE ושם המוצר ולא לקבל כל מיני דברים מה URL כי גם יכולה להיות בעיה עם encoding של עברית וגם זה פרצת אבטחת מידע ואז צריך לעשות ולידציה על מה שאתה מקבל מה URL במיוחד במחרוזות, ולראות שמה שאתה מקבל זה מה שרצית לקבל ולא משהוא אחר , בקוד ששלחת אין ולידציה ואני גם לא יודעת איך מכניסים כאן את כל הספור של הולידציה . מנסיון - לא אוהבת להתעסק עם מה שמגיע מה URL ולא אוהבת להסתמך על זה. השילוב של מחרוזות שמגיעות מה URL יחד עם עיבוד לדטה בייס = צרות.
יש דרך בכל זאת לקבל את הערך הזה לדעתך?
תודה.
האם הצלחת בסופו של
האם הצלחת בסופו של דבר?
נתקלתי בבעיה דומה: יש לי ערך שהמשתמש מכניס בטופס שאני רוצה לשמור אותו בעוגיה או בסשן על מנת להציג אותו כערך ברירת מחדל בטופס אחר.
הבנתי שיש בעיה לשמור ערכים כאלה עבור משתמשים אנונימיים, כאלה שהם לא רשומים.
אולי הפתרון יכול להיות הרצת קוד javascript אחרי שליחת הטופס ששומר ערך מהטופס בעוגיה? זה אפשרי?
כן, הצלחתי לפי ההנחיות של
כן, הצלחתי לפי ההנחיות של עידו, שים לב שזה תלוי URL.
לפי התאור שלך אתה בבעיה אחרת לגמרי...
אני חיפשתי שדה HIDDEN ששומר ערך שישנו ב NODE שיעבור לאי מייל אבל הטופס הוא בלוק ולא "רואה" מה שקורה ב NODE ולכן הערך תלוי בהעברתו ב URL.
יש בטופס את הקטע שבו יש רובריקה שבה אפשר להכניס קוד שמבצע אחרי שהטופס נשלח ( להבנתי) . יכול להיות ששם אתה יכול לשתול קוד PHP של SESSION שישמור לך את הערך שהוזן בשדה. כאן אתה לא תלוי ב URL כי אתה מחכה לערך שהגולש מזין בטופס.
אני לא מכירה את הפטנט הזה עם שמירה כזו ל SESSION אבל שווה לנסות.
תגיד מה ואיך יצא לך בסוף.
ממה שקראתי אי אפשר לשמור מידע
ממה שקראתי אי אפשר לשמור מידע לסשן כאשר המשתמש הוא אנונימי (לא רשום), שזה המצב באתר שלי.
אעדכן כאן כשאמצא פתרון.