2010-06-13 17 views
6

संपादित करें: उत्तर मिला! बहुत बहुत धन्यवाद, बहुत सारे उत्तरों ने काम किया, मैंने छुपा क्षेत्र का जवाब चुना क्योंकि यह सबसे आसान था: डीएक ही पृष्ठ पर प्राप्त करें और पोस्ट करें?

मैं एक टिप्पणी स्क्रिप्ट बना रहा हूं और मुझे एक समस्या आई है। मुझे उसी पृष्ठ पर $ _POST और $ _GET का उपयोग करना है, जो मुझे नहीं लगता कि समझ में आता है।

मैं PHP के लिए बहुत नया हूं और खुद को प्रशिक्षण दे रहा हूं।

मेरे पास viewVerses.php नामक एक पृष्ठ है - इसमें छंदों की एक सूची है। जब कोई जबाब लिंक,

echo '<br /><a href="reply.php?verseid='.$verseid.'">Reply</a>'; 

मैं, reply.php में verseid (बाइबल छंद पर टिप्पणी) गुजर रहा हूँ ताकि एक प्रश्न है कि verseid साथ बनाया जा सकता है इस प्रकार है। (ऐसा इसलिए है कि उपयोगकर्ता अभी भी उस कविता को देख सकता है जिस पर वह टिप्पणी कर रहा है)।

अब उत्तर पोस्ट करने के लिए उत्तर दें .php में इसका फॉर्म है। प्रपत्र postReply.php

यह postReply.php

में है को जाता है
$title = $_POST['title']; 
$body = $_POST['body']; 
$verseid = $_GET[verseid]; 

मैं यूआरएल से verseid और पोस्ट एक ही पृष्ठ में फार्म से मूल्यों को प्राप्त कर सकते हैं?

यदि नहीं, तो क्या कोई तरीका है कि मैं इसे बेहतर कर सकता हूं? याद रखें, मैं php पर नया हूं और शायद एक समाधान को लागू नहीं करेगा जो कि बहुत कठिन है। मुझे इसे अपनी साइट पर रखने के लिए इसे प्राप्त करना होगा।

मुझे आशा है कि यह स्पष्ट है

उत्तर

7

मैं टिप्पणी फार्म के लिए एक छिपा इनपुट जोड़ना होगा:

<input type="hidden" name="verseid" value=" 
<?php echo $_GET['verseid']; ?> 
" /> 

इस तरह, postReply.php में, आप इसे $_POST['verseid'] का उपयोग कर पहुँच सकते हैं।

+0

यह शायद सबसे आसान समाधान है! धन्यवाद! – Phil

1

सुनिश्चित करें कि आप, बस postReply.php लिए फार्म की कार्रवाई निर्धारित कर सकते हैं? Verseid = id_of_the_verse इस तरह से एक उपयोगकर्ता एक उत्तर, पोस्ट सरणी में प्रस्तुत जब जबाब संबंधित हो जाएगा डेटा और कविता की आईडी प्राप्त करें।

4

हाँ आप कर सकते हैं। किसी प्रपत्र की विधि (एचटीएमएल पेज में) पोस्ट हो सकती है और एक्शन यूआरएल में कहने के लिए process.php?vid=1001 जैसे कुछ "GET" तर्क हो सकते हैं। तो process.php में आपके पास vid $ _GET के रूप में होगा और शेष डेटा $ _POST के रूप में होगा।

0

हां, एक अनुरोध के साथ जीईटी और पोस्ट मूल्य दोनों को मिलाकर संभव है। आपके पास समस्या यह है कि आप GET मान को reply.php पर पास करते हैं, जो तब POST मान postReply.php पर पास करता है। इसलिए, जब तक आप उस GET मान को भेजने के लिए reply.php नहीं बताते, तो यह खो जाएगा।

आप या तो form टैग की action पैरामीटर में प्राप्त मूल्य निर्दिष्ट करके ऐसा कर सकते हैं, या आप भी, उस के साथ एक पोस्ट मूल्य के लिए स्विच कर सकता है फार्म के लिए एक <input type="hidden" name="verseid" value="<?php echo $verseid; ?>" /> जोड़कर।

0

हालांकि यह प्रति-अंतर्ज्ञानी प्रतीत हो सकता है कि HTTP अनुरोध Form और QueryString डेटा दोनों के साथ आ सकता है। रॉबर्टबासिक की तरह कहते हैं कि आप उन दोनों को संबंधित सरणी के माध्यम से एक्सेस कर सकते हैं।

0

एक छिपे हुए इनपुट (<input type="hidden" name="verseid" value="..." />) के साथ एक फॉर्म का उपयोग करना शायद चीजों को करने का सबसे साफ तरीका है।

PHP वैश्विक सरणी को $_GET और $_POST के अतिरिक्त भी परिभाषित करता है। आम तौर पर आपको या तो$_GET या $_POST का उपयोग करना चाहिए, लेकिन इस मामले में जहां verseid दोनों विधियों के लिए पारित किया जा रहा है, तो $_REQUEST['verseid'] का उपयोग करना अधिक सुविधाजनक हो सकता है। इस तरह आपको अपनी स्क्रिप्ट पर उपयोग की जाने वाली HTTP विधि की परवाह नहीं है।

संबंधित मुद्दे