Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλημέρα στο forum. Έχω ένα περίεργο πρόβλημα και δεν μπορώ να βρώ που οφείλεται με τίποτα εδώ και 2 μέρες. Και δεν ξέρω και πως να το ψάξω.

Έχω μια καρτέλα στην σελίδα μου μέσα σε ένα foreach loop.

π.χ.

 

                    <div class="row">
                        <div class="col-md-10">
                          
                          <h1>mpla mpla mpla</h1>
                          
                        </div>
                        <div class="col-md-2" style="text-align:right;">
                          
                           <?php show_name($user->name);?>
                        
                      </div>
                    </div>

Το name που μου επιστρέφει είναι link  <a href="mplamplampla.gr/name">name</a>

Όταν έπιλέγω κάποια φίλτρα τότε τον παραπάνω κώδικα τον βάζω με ajax σε ένα <div id="client">

Η php απο πίσω στέλνει στο div

                    echo '
					<div class="row">
                        <div class="col-md-10">
                          
                            <h1>mpla mpla mpla</h1> 
                          
                        </div>
                        <div class="col-md-2" style="text-align:right;">
                           
                           '.show_name($user->name).'
                        
                        </div>
                        
                    </div>';

Και στην αρχή και μετά το ajax το link λειτουργεί όπως πρέπει. Το πρόβλημα είναι οτί όταν επιστρέφει απο ajax βγαίνει εκτός div στο πάνω πάνω μέρος. Αν στο echo γράψω χεράτα  <a href="mplamplampla.gr/name">name</a> το εμφανίζει στην σωστή θέση.

Ελέγχω κιόλας μήπως από την συνάρτηση έρχεται και κανα div που δεν το έχω προσέξει αλλά κανονικά επιστρέφει μόνο το λινκ <a href="mplamplampla.gr/name">name</a>

Δημοσ.

Άρα ενώ εσύ θες να σου στείλει μόνο <a href="mplamplampla.gr/name">name</a>  σου στέλνει όλο εκείνο το html element?

Στείλε κώδικα..και AJAX & php

Δημοσ. (επεξεργασμένο)
1 ώρα πριν, Ponous είπε

Άρα ενώ εσύ θες να σου στείλει μόνο <a href="mplamplampla.gr/name">name</a>  σου στέλνει όλο εκείνο το html element?

Στείλε κώδικα..και AJAX & php

Όχι μου στέλνει κανονικά αυτό που πρέπει αλλά δεν το βάζει στο σωστό σημείο. Θα σου στείλω κώδικα άυριο το πρωί γιατί έκλεισα το pc.

Άκου η function μου επιστρέφει ένα link <a href="mplamplampla.gr/name">name</a>. Τσεκαρισμένο

Αν στο κώδικα php που επιστρέφει το κώδικα στο ajax στο σημείο του link γράψω με το χερι <a href="mplamplampla.gr/name">name</a> θα το εμφανίσει σωστά στο σημείο που πρέπει.

Αν αντί για λινκ με το χέρι, βάλω την συνάρτηση (που όπως είπα εμφανίζει ακριβώς το ίδιο html link) το βάζει σε άλλο σημείο. Στην αρχή του div.

==================================

Πιο απλά...

Έστω οτι φτιάχνω μία function
 

function test($name){

return $name

}

και η php που μου επιστρέφει στο frontend είναι.

echo ' <div class="row">
 <div class="col-md-7">
  name: 
 </div>
 <div class="col-md-5">
  '.test("Kostas").'
 </div>
</div>';

Έτσι οπως το έχω θα μου εμφανίσει αυτό (με πρόβλημα δηλαδή. Κοιτάτε που εμφανίζει το Kostas)

Snip20200413_25.png.8eab3d59dee2c43f1b6bfdd522aeed42.png

Αν όμως το παραπάνω κώδικα τον κάνω έτσι

echo ' <div class="row">
 <div class="col-md-7">
  name: 
 </div>
 <div class="col-md-5">
  Kostas
 </div>
</div>';

Θα μου εμφανίσει σωστά

Snip20200413_26.png.923873efdcdb88061e671639ba36188d.png

 

 

Επεξ/σία από hdonoblepsias
Δημοσ.

Δώσε id στο div σου και δώσε την τιμή που επιστρέφεται από το call ως .innerHTML στο συγκεκριμένο element (ή με .html() αν έχει jquery ή τέλος πάντων νομίζω κατάλαβες τι εννοώ). 

Δημοσ.

Το ajax είναι javascript Αυτό που δείχνεις εσύ είναι PHP και bootstrap . 

 

Δημοσ.
5 ώρες πριν, gekatsou είπε

Το ajax είναι javascript Αυτό που δείχνεις εσύ είναι PHP και bootstrap . 

Επειδή έχω δει και παλιότερα posts του @hdonoblepsiasξέρει μια χαρά τι είναι το ajax. Υποθέτω ότι αυτό τον κώδικα τον έγραψε (μιας που δεν ήταν στο pc για να στείλει το πρωτότυπο) για το τι του επιστρέφει πάνω κάτω το php αρχείο που καλεί. Εικασίες κάνω πάντα.

  • Thanks 1
Δημοσ.
6 ώρες πριν, gekatsou είπε

Το ajax είναι javascript Αυτό που δείχνεις εσύ είναι PHP και bootstrap . 

Το Ajax δεν χρειάστηκε να το γράψω. Το data έρχεται κανονικά. Αλλά ας γράψω αυτό που επιστρεφει. Δεν νομιζω να χρειάζεται να γράψω όλο το ajax.

success: function(data){
	$("#newlist").html(data);  
    $('html, body').animate({ scrollTop: 0 }, 1000);
     }

 

10 ώρες πριν, rafinos είπε

Δώσε id στο div σου και δώσε την τιμή που επιστρέφεται από το call ως .innerHTML στο συγκεκριμένο element (ή με .html() αν έχει jquery ή τέλος πάντων νομίζω κατάλαβες τι εννοώ). 

Έδωσα παραπάνω τον κομμάτι του ajax. Σωστά το επιστρέφω.

Κατι γίνεται με το echo της php αλλά δεν μπορώ να το βρω

 

Δημοσ.

Νομίζω το θέμα σου τότε είναι ότι στην php δεν φτιάχνεις το html section όπως πρέπει.

Η php κάνει interpret στον server και μετά στέλνει το html αρχείο μπροστά. Εσύ λογικά στέλνεις πίσω στο front-end(στο success) ένα μπλοκ δεδομένων το οποίο έχει μέσα και εντολές php. Δεν γίνεται interpret και γι' αυτό στο data σου πέρνεις μέσα μη-html μπλοκς και σπάει.

Στείλε και php και κάνε console.log(data) να δούμε τι σου επιστρέφει

  • Like 1
Δημοσ.
21 ώρες πριν, Ponous είπε

Νομίζω το θέμα σου τότε είναι ότι στην php δεν φτιάχνεις το html section όπως πρέπει.

Η php κάνει interpret στον server και μετά στέλνει το html αρχείο μπροστά. Εσύ λογικά στέλνεις πίσω στο front-end(στο success) ένα μπλοκ δεδομένων το οποίο έχει μέσα και εντολές php. Δεν γίνεται interpret και γι' αυτό στο data σου πέρνεις μέσα μη-html μπλοκς και σπάει.

Στείλε και php και κάνε console.log(data) να δούμε τι σου επιστρέφει

 

21 ώρες πριν, rafinos είπε

Συμφωνώ απόλυτα με τον @Ponous

Έχετε πμ

Δημοσ.

Ρε παιδιά (μην βαράτε 🤣) με βοήθησε ένας φίλος και έλυσα το πρόβλημα.

Το κακό είναι οτι εδώ νόμιζα οτι έκανα σωστή αναπαράσταση του κώδικά μου, οπότε που να καταλάβετε το λάθος. ΔΕΝ ΠΗΓΕ το μάτι μου καθόλου...

Στην συνάρτησή μου επέστρεφα το λινκ με echo

echo ' <a href="mplamplampla.gr/name">name</a>';

και όχι με return

return ' <a href="mplamplampla.gr/name">name</a>';

🤣🤣🤣

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...