2013-07-09 5 views
5

क्या HREF लिंक बनाना संभव है जो एक PHP फ़ंक्शन को कॉल करता है और इसके साथ एक चर को पास करता है?एचआरईएफ एक PHP फंक्शन कॉल करने और एक चर पारित करने के लिए?

<?php 
function sample(){ 
    foreach ($json_output->object){ 
     $name = "{$object->title}"; 
     $id = "{$object->id}"; 

     print "<a href='search($id)' >$name</a>"; 
    } 
} 

function search($id){ 
    //run a search via the id provide by the clicking of that particular name link 
} 
?> 
+1

यह अपने HTML लिंक से AJAX का उपयोग करने के लिए, एक PHP स्क्रिप्ट कॉल करने के लिए एक मूल्य में गुजर और कुछ लौटने संभव है, लेकिन तुम्हारे पास क्या है वहाँ काम नहीं करेगा। – Revent

+0

@ अगर मैं इनपुट डालता हूं और प्रत्येक लिंक पर बटन सबमिट करता हूं तो क्या यह काम करेगा? – Squirtle

+0

शायद जिस तरह से आप सोच रहे हैं। सर्वर पर एक और अनुरोध भेजने के बिना PHP फ़ंक्शन को कॉल करने के लिए ** कोई रास्ता नहीं ** है। –

उत्तर

1

नहीं, कम से कम सीधे नहीं।

  1. करते समय वह URL की क्वेरी स्ट्रिंग में डेटा शामिल कर सकते हैं (<a href="myProgram.php?foo=bar">)
  2. यूआरएल एक PHP कार्यक्रम के द्वारा नियंत्रित किया जा सकता है कि
  3. कि पीएचपी कार्यक्रम एक कॉल कर सकते हैं आप किसी URL से लिंक कर सकते हैं केवल एक चीज यह है
  4. आप डेटा $_GET['foo'] से कि समारोह
+0

कर सकते हैं यदि मैं इनपुट डालता हूं और प्रत्येक लिंक पर बटन सबमिट करता हूं तो यह काम करेगा? – Squirtle

+0

नहीं। आप एक लिंक के बजाय सबमिट बटन * के साथ एक फॉर्म का उपयोग कर सकते हैं * (और उसके बाद "आप एक यूआरएल में एक फॉर्म जमा कर सकते हैं" के उत्तर के चरण 1 को बदलें) लेकिन आप एक लिंक के अंदर एक बटन नहीं डाल सकते (या विपरीतता से)। – Quentin

-1

हाँ, यह संभव है करने के लिए पारित कर सकते हैं के रूप में कार्य, ख आपको एक एमवीसी प्रकार की संरचना की आवश्यकता है, और .htaccess यूआरएल पुनर्लेखन भी चालू है।

यहां कुछ पढ़ने की सामग्री है जो आपको समझने में शुरू हुई कि एमवीसी क्या है।

http://www.phpro.org/tutorials/Model-View-Controller-MVC.html 

और अगर आप के बजाय MVC पहिया पुनर्रचना की, एक मिठाई ढांचे का चयन करना चाहते हैं, मैं अत्यधिक सुझाव है, LARAVEL 4

+0

डाउनवोट क्यों ?? यह किसी के रूप में एक कानूनी जवाब है। यह सच है .... यदि ओपी कार्यों का एक गुच्छा चाहता है और उन कार्यों को 'पेज' कहा जा सकता है, तो एमवीसी इसके बारे में जाने का तरीका है – KyleK

+0

एमवीसी ओपी क्या करने की कोशिश कर रहा है उसके लिए बहुत जटिल है। बस थोड़ा AJAX सीखो। –

+0

ओपेक्स ने – Quentin

2

HTML आउटपुट जरूरतों की तरह

<a href="php_file.php?id=1">anchor text</a> 

आपका समारोह देखने के लिए होगा इस जानकारी को उस प्रारूप में आउटपुट करने की आवश्यकता है।

2

नहीं, आप इसे सीधे नहीं कर सकते हैं। आप केवल एक यूआरएल से लिंक कर सकते हैं। , PHP कोड में

print "<a href='yourphpscript.php?fn=search&id=$id' >$name</a>"; 

और::

इस मामले में, आप समारोह नाम और पैरामीटर क्वेरी स्ट्रिंग में पारित कर सकते हैं और फिर PHP में इसे संभाल के रूप में नीचे दिखाया गया

if ($_GET['fn'] == "search") 
    if (!empty($_GET['id'])) 
      search($id); 

सुनिश्चित करें कि आप GET पैरामीटर को sanitize।

+0

क्या आपके yourppcript.php को लिंक को आउटपुट करने वाले प्रिंट स्टेटमेंट के रूप में एक ही PHP पृष्ठ को संदर्भित करने की आवश्यकता है? क्या इसे एक अलग पृष्ठ पर होना चाहिए? कोई फर्क नहीं पड़ता? –

+1

यह वही पृष्ठ हो सकता है, या एक अलग। कोई फर्क नहीं पड़ता – janenz00

+0

ठीक है कि समझ में आता है। मैंने एक अलग पृष्ठ का उपयोग करने की कोशिश की, और यह ठीक काम किया। –

9

आप ढांचे का उपयोग किये बिना आसानी से ऐसा कर सकते हैं। डिफ़ॉल्ट रूप से, कुछ भी जो बाद में आता है? एक यूआरएल में एक वैरिएबल है।

इसलिए उदाहरण के लिए

, www.google.com/search.html?term=blah

www.google.com/search.html जाती थी, और मूल्य के साथ प्राप्त चर "शब्द" से होकर गुजरेगा "blah"।

एकाधिक चर एक &

उदाहरण के लिए, www.google.com/search.html?term=blah & TERM2 साथ अलग किया जा सकता = शांत

GET विधि पीएचपी से स्वतंत्र है, और HTTP विनिर्देश का हिस्सा है।

PHP स्वचालित रूप से superglobal चर $ _GET [] बनाकर आसानी से अनुरोधों को प्राप्त करता है, जहां प्रत्येक सरणी अनुक्रमणिका एक GET चर नाम है और सरणी अनुक्रमणिका का मान चर का मान है।

<?php 
    //check if the get variable exists 
    if (isset($_GET['search'])) 
    { 
     search($_GET['search']); 
    } 

    function Search($res) 
    { 
     //real search code goes here 
     echo $res; 
    } 


?> 

<a href="?search=15">Search</a> 

जो 15 बाहर प्रिंट होगा, क्योंकि यह खोज का मूल्य है और मेरे खोज डमी समारोह बस किसी भी परिणाम यह हो जाता है

0

बाहर प्रिंट:

यह इस तरह दिखाने के लिए कुछ डेमो कोड है बस इस

<?php 
function sample(){ 
    foreach ($json_output->object){ 
     $name = "{$object->title}"; 
     $id = "{$object->id}"; 

     print "<a href='?search=" . $id . "' > " . $name . "</a>"; 
    } 
} 

if (isset($_REQUEST['search'])) { 
    search($_REQUEST['search']); 
} 

function search($id){ 
    //run a search via the id provide by the clicking of that particular name link 
} 
?> 

भी सुनिश्चित करें कि आपके $json_output पहुँचा जा सकता है sample() समारोह है साथ करते हैं।
आप इसे अपने लिंक के href$_GET या $_REQUEST

<?php 
    if (isset($_REQUEST['search'])) { 
     search($_REQUEST['search']); 
    } 

    function Search($res) { 
     // search here 
    } 

    echo "<a href='?search='" . $id . "'>" . $name . "</a>"; 
?> 
0

सेट क्वेरी स्ट्रिंग कर सकते हैं हाँ, आप कर सकते हैं कर दो। उदाहरण:

अपने दृश्य से:

<p><a href="test/1" class="btn blue">Edit</a> 

कहाँ 1 एक पैरामीटर आप भेजना चाहते है। यह एक वस्तु से लिया गया डेटा भी हो सकता है।

अपने नियंत्रक से:

function test($id){ 
    #code... 
} 
1

साथ मूल्य और इसे का उपयोग के साथ में किसी भी तरह से

<?php 
function sample(){ 
    global $json_output; 
    // rest of the code 
} 
?> 

या

<?php 
function sample($json_output){ 
    // rest of the code 
} 
?> 
संबंधित मुद्दे