php και javascript

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

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

Απάντηση
abeautifulmind
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2010 18:04

php και javascript

Δημοσίευση από abeautifulmind » 23 Ιαν 2011 16:27

καλησπέρα σε όλους.
Ξέρει κανείς πως μπορώ να καλέσω μία javasript funtion από php κάνοντας click αλλά και γενικά αν υπάρχει καμία onclick ιδιότητα στην php?
Tι ενοώ? Έχω αυτό
print "<tr class='chatwin'><td class='chatuseronline'><A href''>clik here</a>
</td></tr>";
Μπορώ να την καλέσω μέσα από το a href η υπάρχει κάτι σε onclick στην php?

papoukas
Δημοσιεύσεις: 76
Εγγραφή: 18 Ιαν 2011 23:24

php και javascript

Δημοσίευση από papoukas » 23 Ιαν 2011 23:50

Η php δεν παρέχει καμιά εντολή onclick. Θα πρέπει ο κώδικας σε php με χρήση της echo να δώσει στον browser τον html κώδικα που αυτός με την σειρά του παρέχει την δυνατότητα onclick. Ετσι αν έχω αρχείο example.js και example.php και θέλουμε από php να καλέσουμε την συνάρτηση myfunc() που βρίσκετε στο example.js τότε:

Example.js

function myfunc()
{
alert("test");
}


example.php

&#8230;.
echo &#8216;<a href="#" onclick="javascript:myfunc();">mylink</a>&#8217;;
&#8230;.

Εναλλακτικά μπορείς να μην χρησιμοποιήσεις το href για να μην φαίνεται το link που έχεις αλλά θα πρέπει στην style να βάλεις την μορφοποίηση του link

echo &#8216;<a style="cursor:pointer;" onclick="javascript:myfunc();">mylink</a>&#8217;;

Στο παράδειγμα σου θα το έκανα ως εξής

echo "<tr class='chatwin'><td class='chatuseronline'>";
echo &#8216;<a href="#" onclick="javascript:myfunc();">click here</a>&#8217;;
echo &#8216;</td></tr>&#8217;;

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

php και javascript

Δημοσίευση από korgr » 24 Ιαν 2011 10:15

Επίσης σε όσους μπερδεύουν την php και την javascript, η καλύτερη συμβουλή που έχω να τους δώσω είναι να κατανοήσουν τις ένοιες server side και client side ή στην δημοτική, σε άλλον υπολογιστή εκτελείται η php και σε άλλον η javascript! Η php η οποία εκτελείται στον server δεν έχει κάποιον χρήστη εκεί να κάνει ...κλικ! Το κλικ το κάνει πρώτα ο user (client side pc) και μετά το αντιλαμβάνεται η javascript (αφού η php έχει τελειώσει την εκτέλεση της και έχει παραδώσει το αποτέλεσμα (πχ html+js+css) στον υπολογιστή του χρήστη.

abeautifulmind
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2010 18:04

php και javascript

Δημοσίευση από abeautifulmind » 24 Ιαν 2011 11:25

papouka kai korg ευχαριστώ πολύ θα το δοκιμάσω το απόγευμα και θα σας πω.
Κorg γνωρίζω για το client-server side να αναλύσω λίγο καλύτερα το πρόβλημμα μου.
Εχω στην main μου ένα div στο οποίο κάνω refresh me jquery και load ένα εξωτερικό αρχείο users_online.php το οπίο μου δείχνει πιοί χρήστες έιναι online. To πρόβλημμα είναι ότι έχω δώσει στο users_online.php στην print <tr class='chatwin'> bla bla και με javascript κάνω χρήση $('.chatwin').onclick bla bla για να ανόιγει ένα παράθυρο και να κάνεις prive chat με τον χρήστη που θες .To περίεργο έιναι ότι όταν βγάζω το refresh λειτουργεί όταν το βάζω όχι.

Άβαταρ μέλους
Khronos
Δημοσιεύσεις: 754
Εγγραφή: 11 Δεκ 2006 14:43
Τοποθεσία: Ηράκλειο

php και javascript

Δημοσίευση από Khronos » 24 Ιαν 2011 11:39

Χρησιμοποίησε τη live() αλλιώς αν δεν σου δουλέψει δοκίμασε με το livequery.

http://api.jquery.com/live/
http://docs.jquery.com/Plugins/livequery


abeautifulmind
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2010 18:04

php και javascript

Δημοσίευση από abeautifulmind » 24 Ιαν 2011 20:10

Δηλαδή αντί για
<script type="text/javascript">

$(function (){
$('.chatwin').click(function (){
$('#chat').css ('visibility', 'visible');
$('#chat').fadeIn();

});
});


</script>
θα γράψω
<script type="text/javascript">
$('.chatwin')
.livequery('click', function() {
$('#chat').css ('visibility', 'visible');
$('#chat').fadeIn();
});
</script>
ορίστε και το refresh
<script type="text/javascript">
var auto_refresh = setInterval(
function ()
{
$('.users_online').load('users_online.php').fadeIn("slow");
}, 1000); // refresh every 10000 milliseconds
</script>
<li class="users_online">
και το users_online
<?php
session_start();
include "connect.php"; //mysql db connection here


print "<table class='chatusertable'>";

$show_user_online="SELECT user_online from users_online where user_online!='$_SESSION[username]' order by user_online";

$show_user_online2=mysql_query($show_user_online) or die("Could not get users_online");

while($show_user_online3=mysql_fetch_array($show_user_online2))
{
print "<tr class='chatwin'><td class='chatuseronline'><font color='black'>" .$show_user_online3["user_online"]. "
</font></td></tr>";
}
print "</table>";

?>

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

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

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