chrism4111 Δημοσ. 21 Ιανουαρίου 2011 Δημοσ. 21 Ιανουαρίου 2011 Γεια σας και πάλι έχω ένα θεματάκι με την ajax που δεν μπορω να το λυσω Ο κωδικας της Ajax ειναι ο ιδιος με αυτον του W3Schools.com: Και στελνει μετα απο κλικ σε ενα <a></a> html tag καποια δεδομενα σε ενα script της php ας πουμε το getuser.php ::::: > <script type="text/javascript"> /* ajax */ function popular(like) { if (like=="") { document.getElementById("txtHint").innerHTML="oups"; return; } if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("txtHint").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","getuser.php?like="+like,true); xmlhttp.send(); </script> <?php /** * @author Chrism * @copyright 2011 */ connect(); $query = "SELECT * FROM news ORDER BY NewID"; $results = mysql_query($query); $num = mysql_num_rows($results); if($num > 0) { for($i=0;$i<$num;$i++) { session_start(); $row = mysql_fetch_array($results); $imgquery = "SELECT * FROM images WHERE Image_Category='News' AND Value=".$row['NewID']; $imgresult = mysql_query($imgquery); $imgnum = mysql_num_rows($imgresult); echo '<div class="content-news">'; if($imgnum>0) { $imgrow = mysql_fetch_array($imgresult); echo '<div class="img-news-content"><img src="'.$imgrow['Image_Link'].'" width="678" height="370"/></div>'; } echo '<div class="news-header-cont"><h3>'.$row['Title'].'</h3></div>'; echo '<div class="like-news">'; echo $row['Create_Date']; echo '<span style="float:right;font-family:georgia;font-size:18pt;font-weight:bold;color:black">[u][b]<a class="minus" onclick="popular("minus")>-</a>[/b][/u] [u][i][b]<span id="txtHint">0</span>[/b][/i][/u] <span class="plus" >+</span></span>'; echo '</div>'; echo '<p>'; echo '<div class="news-body-text-cont">'.get_between($row['Text'],'<p>','</p>').'</div>'; echo '</p>'; echo '<div style="color:black" class="news-footer">Πηγή :<a style="color:#6B0404;" href="'.$row['Source_Link'].'">'.$row['Source'].'</a></div>'; echo '</div>'; } } ?> Ασ πουμε οτι το script getuser.php ειναι το παρακατω > <?php $q=$_GET["like"]; \\ενα πολυ απλο απλο πραγματακι echo $q; ?> Με αυτην την διαταξη του κωδικα δεν θα επρεπε να μου εμφανιζει την λεξη minus στη θεση του 0 με το που κλικαρο το -??? Γιατι αραγε δεν μου δίνει το ζητουμενο αποτελεσμα??? Να σημειωσω οτι ο κωδικας που περιεχει το ajax script γινετε require_once απο την index.php (που μαλλον δεν χρειαζετε να παραθεσω)
macabre_sunsets Δημοσ. 21 Ιανουαρίου 2011 Δημοσ. 21 Ιανουαρίου 2011 ><a class="minus" onclick="popular("minus")>-</a> Δεν κλείνεις το onclick (λείπει ένα "). Θα πρέπει να είναι κάπως έτσι: ><a class="minus" onclick="popular("minus")">-</a> Το οποίο πάλι δεν είναι σωστό καθώς έχεις πολλαπλά " μέσα στο onclick. Δοκίμασε το ακόλουθο: ><a class="minus" onclick="popular(\'minus\')">-</a>
chrism4111 Δημοσ. 21 Ιανουαρίου 2011 Μέλος Δημοσ. 21 Ιανουαρίου 2011 Οντως μου ειχε ξεφυγει ενα κλεισιμο του onclick ... Αλλα και παλι δεν δουλευει (Δοκιμασα και τον δευτερο τροπο με τα με τα slice αλλα και παλι τιποτα) Καμια αλλη ιδεα?
macabre_sunsets Δημοσ. 21 Ιανουαρίου 2011 Δημοσ. 21 Ιανουαρίου 2011 Δεν έχεις κλείσει την function popular(like) (λείπει ένα } πάνω από το </script>).
chrism4111 Δημοσ. 21 Ιανουαρίου 2011 Μέλος Δημοσ. 21 Ιανουαρίου 2011 Εισαι θεος Πετυχε....Εκανε τοσο μπαμ και δεν το εβλεπα . τι να κανουμε Τωρα ομως εχω αλλο προβλημα .... Εαν γινει τωρα μια διπλη επαναληψη στην for το to minus μου εμφανιζετε παντα στο πρωτη εμφανισει οποιο πλην και να πατησω .. Τι μπορω να κανω γι'αυτο???
macabre_sunsets Δημοσ. 21 Ιανουαρίου 2011 Δημοσ. 21 Ιανουαρίου 2011 Στην JS λες «βρες μου το πεδίο με id "txtHint" και γράψε τα τάδε κείμενο». Όμως στο for δημιουργείς πολλαπλά πεδία με όνομα "txtHint". Άρα αυτό πάει και σου αλλάζει το πρώτο πάντα. Αυτό που θα μπορούσες να κάνεις είναι να αριθμήσεις τα πεδία, για παράδειγμα "txtHint_1", "txtHint_2" και πάει λέγοντας. Όταν καλείς την popular, εκτός από την μεταβλητή "like" θα δίνεις και την μεταβλητή $i. Έπειτα στην JS θα του λες «βρες μου το πεδίο με όνομα "txtHint_" + i και βάλε το τάδε κείμενο». Στην PHP τώρα, όταν δημιουργείς τα πεδία θα πρέπει να προσθέσεις και το $i σε κάθε txtHint (πχ/ "txtHint_".$i). Έχε υπ'όψιν σου ότι προσπαθώ να σου πω μια γενική ιδέα, οπότε αν κάνεις απλά paste τα παραπάνω στον κώδικά σου το πιο πιθανό είναι να μην παίξουν.
chrism4111 Δημοσ. 21 Ιανουαρίου 2011 Μέλος Δημοσ. 21 Ιανουαρίου 2011 Πολυ ενδιαφερουσα λογικη που μου λειτουργησε .. Ευχαριστω!!!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.