Κλήση εξωτερικής php function

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Κλήση εξωτερικής php function

Δημοσίευση από argate7 » 09 Φεβ 2013 05:21

Καλημέρα σε όλους,

Έχω μία σελίδα ΒΑΣΙΚΗ μέσα στην οποία έχω ένα div στο οποίο μέσω javascript εμφανίζω όλες τις άλλες σελίδες μου. Είναι κάτι σαν frame. Μέσα λοιπόν στο divάκι αυτό εμφανίζω μία σελίδα με ένα πίνακα. Θέλω κάθε φορά που κλικάρω ένα row αυτού του πίνακα (είναι με αποτελέσματα από τη βάση δεδομένων) να φεύγει ο πίνακας ή τουλάχιστον να κρύβεται και να έρχεται μέσα στο divάκι μία php σελίδα η οποία θα εμφανίζει τα πλήρη στοιχεία της γραμμής που επιλέχθηκε από το χρήστη.

Αυτό που σκέφτηκα και πάνω σε αυτό θα ήθελα τη βοήθεια σας (εκτός αν έχετε να προτείνετε κάτι άλλο), είναι το να καλώ μία function μέσω javascript η οποία θα καλεί μία συσκεκριμένη function από το php αρχείο που θα έχει όλα τα query και θα παίρνει ως παράμετρο το id της συγκεκριμένης εγγραφής που επέλεξε ο χρήστης.

Οι δοκιμές στον κώδικα που έχω κάνει φαίνονται παρακάτω...

Κώδικας: Επιλογή όλων

<!DOCTYPE html>
<html>
<head>
<script src="http&#58;//ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<style>
a&#123;
text-decoration&#58;none;
&#125;
tr&#58;hover&#123;
cursor&#58;pointer;
background-color&#58;#ff0000;
&#125;
</style>
</head>
<body>
<script>
$&#40;document&#41;.ready&#40;function&#40;&#41;&#123;

$&#40;'ul a'&#41;.live&#40;'click', function&#40;e&#41; &#123;
e.preventDefault;
var pagelink = $&#40;this&#41;.attr&#40;'id'&#41;;
$&#40;"#response2"&#41;.load&#40;"pages/"+pagelink + ".php"&#41;;
&#125;&#41;;
&#125;&#41;;
</script>
<script>
function my2&#40;$num&#41;
&#123;
//$_SESSION&#91;'num'&#93;=$num;
//$&#40;"#response2"&#41;.load&#40;"pages/subpages/home4.php"&#41;;
document.getElementById&#40;'response2'&#41;.innerHTML = "The number is ... "+$num;
//echo $_SESSION&#91;'num'&#93;;
&#125;
</script>
<script>
function show&#40;$link&#41;
&#123;
alert&#40;$link&#41;;
alert&#40;"xaxa"&#41;;
$&#40;"#response2"&#41;.load&#40;"pages/".$link.".php"&#41;;
&#125;

function my3&#40;$num&#41;
&#123;
var mynum="pages/subpages/home".$num.".php";
$&#40;"#response2"&#41;.load&#40;mynum&#41;;
&#125;

</script>
<ul class="menu-links2"> 
<table>
<tr>
<td><a href="#" id="subpages/home3">xaxa1</a></td>
<td><a href="#" id="subpages/home3">xaxa2</a></td>
<td><a href="#" id="subpages/home3">xaxa3</a></td>
</tr>
<tr onclick="show&#40;'subpages/home4'&#41;">
<td>xaxa1</td>
<td>xaxa2</td>
<td>xaxa3</td>
</tr>
<tr onclick="my2&#40;5&#41;">
<td>xaxa1</td>
<td>xaxa2</td>
<td>xaxa3</td>
</tr>
<tr onclick="my3&#40;4&#41;">
<td>xaxa1</td>
<td>xaxa2</td>
<td>xaxa3</td>
</tr>
</table>
</ul>
</body>
</html>
Κάθε πρόταση ευπρόσδεκτη.

Άβαταρ μέλους
Christianago
Δημοσιεύσεις: 332
Εγγραφή: 12 Νοέμ 2009 13:36

Κλήση εξωτερικής php function

Δημοσίευση από Christianago » 09 Φεβ 2013 10:43

Γινεται αρκετα ευκολα με ajax.

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

Κλήση εξωτερικής php function

Δημοσίευση από alou » 09 Φεβ 2013 11:01

Ανάλογα με τις συνολικές σου εγγραφές και το μέγεθος των στοιχείων, πιθανώς είναι καλύτερο όλα αυτά να υπάρχουν κρυμμένα ήδη μέσα στην html και απλά να τα εμφανίζεις.

Η λύση του ajax query μια χαρά είναι αλλά πως να σε βοηθήσει κάποιος αν δεν ξέρει που / πως είναι τα στοιχεία που θες να πάρεις?

Παράδειγμα:

Μια σειρά του πίνακα:

Κώδικας: Επιλογή όλων

<table id="ajaxcalls"><tr>
<td id="someId">Ένα κάτι</td>
</tr></table>
jquery:

Κώδικας: Επιλογή όλων

$&#40;"#ajaxcalls td"&#41;.click&#40;function&#40;&#41;&#123;  
var itemID = $&#40;this&#41;.attr&#40;'id'&#41;;  
$.ajax&#40;&#123;
        url&#58;'enaArxeio.php',
        type&#58;'POST',
        data&#58; &#123;'itemid'&#58; itemID&#125;,
        dataType&#58;'html',
        cache&#58;false,
        success&#58;function&#40;data&#41;&#123;
//πιθανώς κάνεις κάτι να κρύψεις τον πίνακα και μετά εμφανίζεις τα στοιχεία που θες? όπως νομίζεις
		$&#40;'div#TO-DIV-POU-8A-FEREIS-TA-STOIXEIA'&#41;.html&#40;'data'&#41;;
    &#125;,
        error&#58;function&#40;jxhr&#41;&#123;
        alert&#40;jxhr.responseText&#41;;
    &#125;
    &#125;&#41;; 



Στο php αρχείο σου θα πάρεις το $_POST['itemid'] και θα κάνεις ότι είναι να κάνεις με βάση το id.
Ότι κάνεις echo στο php αρχειο θα πάει στο συγκεκριμένο div. Το φέρνω σαν html οπότε θα πρέπει να κάνεις και στην php echo κάτι αντίστοιχο, όμως θα μπορούσες να επιστρέψεις και άλλου είδους δεδομένα όπως json και να τα χειριστείς αρκετά διαφορετικά.

Πειραματίσου και το ξανασυζητάμε.

argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Κλήση εξωτερικής php function

Δημοσίευση από argate7 » 11 Φεβ 2013 22:13

Δεν μπόρεσα να το κάνω να δουλέψει. Για να είμαι πιο ειλικρινής μάλλον δεν μπορώ να καταλάβω το πως λειτουργεί. Απ'ότι φαίνεται θα καταλήξω στο να έχω όλες τις functions μέσα στο βασικό php αρχείο απ'όπου θα παίρνω και τα αποτελέσματα που θέλω. Απλά ελπίζω να μην με ταλαιπωρήσει! Ήλπιζα ότι με την ajax θα μπορούσα να βγάλω άκρη και να εμφανίζω τα αποτελέσματα πιο γρήγορα. Βέβαια και με αυτό τον τρόπο που τελικά απ'ότι φαίνεται θα το κάνω, μια χαρά γρήγορο θα είναι και θα παίξει και σωστά.

argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Κλήση εξωτερικής php function

Δημοσίευση από argate7 » 15 Φεβ 2013 08:37

Με τη βοήθεια του παρακάτω link, κατάφερα και έκανα αυτό που ήθελα και μάλιστα με άψογο και άμεσο αποτέλεσμα. Το παραθέτω σε περίπτωση που κάποιος ψάχνει κάτι αντίστοιχο!

http://www.degraeve.com/reference/simpl ... xample.php

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης