edit-in-place και update βάσης δεδομένων
Συντονιστές: WebDev Moderators, Super-Moderators
edit-in-place και update βάσης δεδομένων
Στην php κάνεις κάτι echo?
και αφού το data είναι text, τσέκαρε το data τι είναι, όχι το data.success (αυτό θα ίσχυε αν ήταν json object και είχες κάνε echo json encoded array στην php).
οπότε if (data == 'everything OK') κλπ στο js κομμάτι και μην ξεχάσεις echo $success στην php.
τώρα λογικό να είναι undefined.
και αφού το data είναι text, τσέκαρε το data τι είναι, όχι το data.success (αυτό θα ίσχυε αν ήταν json object και είχες κάνε echo json encoded array στην php).
οπότε if (data == 'everything OK') κλπ στο js κομμάτι και μην ξεχάσεις echo $success στην php.
τώρα λογικό να είναι undefined.
edit-in-place και update βάσης δεδομένων
προχωράω στο να παραθέσω κώδικα κατευθείαν:
κώδικας js:
κωδικας PHP, το script όπως καταλάβατε λέγεται testajax.php:
To update γινεται κανονικά...όταν τρέχει ο κώδικας αυτό που βγαίνει είναι ένα alert box που περιέχει το μήνυμα error και φαίνεται από την ajax function(πριν έβγαζε undefined το alert box) παραπάνω, στο conditional.
Έχω βάλει μέσα στον κώδικα της js(είναι μετά το ajax function) ένα console.log(data) εδώ...στην error console του chrome βλέπω αυτό:
Uncaught ReferenceError: data is not defined
Oπότε υπάρχει πρόβλημα με το data...τι όμως ακριβώς δεν μπορώ να καταλάβω.
κώδικας js:
Κώδικας: Επιλογή όλων
$.ajax({
type: "POST",
url: "testajax.php",
dataType:'text',
cache:false,
data:{"name":name,"lastname":lastname,"btype":btype},//το πρόβλημα έχει να κάνει με την μεταβλητή btype---το πρόβλημα είναι ότι είναι κενή
success:function(data){
if (data=='1')
{$('#loadserver').html("Όλα Οκ!!!");}
else
{alert('error');}
}
});
Κώδικας: Επιλογή όλων
$name=$_POST['name'];
$lastname=$_POST['lastname'];
$btype=$_POST['btype'];
$result = $conn->query('update busines_users
set name="'.$name.'",lastname="'.$lastname.'",bus_userstype="'.$btype.'"
where crID="12"');
if($result)
{ $success='1'; }
else
{$success='0';}
echo $success;
Έχω βάλει μέσα στον κώδικα της js(είναι μετά το ajax function) ένα console.log(data) εδώ...στην error console του chrome βλέπω αυτό:
Uncaught ReferenceError: data is not defined
Oπότε υπάρχει πρόβλημα με το data...τι όμως ακριβώς δεν μπορώ να καταλάβω.
edit-in-place και update βάσης δεδομένων
Έξω από το ajax function φυσικά και είναι undefined το data (out of scope). Κάνε
success:function(data){ alert(data);}
να δεις τι έχει το data
και δοκίμασε το conditional με
if (data==='1')
αφού είναι string το 1
success:function(data){ alert(data);}
να δεις τι έχει το data
και δοκίμασε το conditional με
if (data==='1')
αφού είναι string το 1
edit-in-place και update βάσης δεδομένων
ναι ζήτω ήταν αυτό...
δεν υπήρχε πρόβλημα με το conditional τελικα( και αν είναι === ή ==).
Αυτό που βήθησε ήταν το alert(data).
To πρόβλημα ήταν πως το αρχείο PHP που στέλνονταν τα δεδομένα είχε HTML(body tag, html tag...head section).
Μόλις τα έβγαλα... λύθηκε το πρόβλημα.Δεν είχα δώσει σημασία ότι στο δικό σου script απουσίαζε παντελώς η HTML.
Τώρα αντιμέτωπίζω κάτι άλλο βέβαια...οπότε θα επανέλθω...στο ίδιο post γιατί είναι απολύτως σχετικό.
Κατα τα άλλα ευχαριστώ για την βοήθεια και κυρίως για την ΥΠΟΜΟΝΗ.
δεν υπήρχε πρόβλημα με το conditional τελικα( και αν είναι === ή ==).
Αυτό που βήθησε ήταν το alert(data).
To πρόβλημα ήταν πως το αρχείο PHP που στέλνονταν τα δεδομένα είχε HTML(body tag, html tag...head section).
Μόλις τα έβγαλα... λύθηκε το πρόβλημα.Δεν είχα δώσει σημασία ότι στο δικό σου script απουσίαζε παντελώς η HTML.
Τώρα αντιμέτωπίζω κάτι άλλο βέβαια...οπότε θα επανέλθω...στο ίδιο post γιατί είναι απολύτως σχετικό.
Κατα τα άλλα ευχαριστώ για την βοήθεια και κυρίως για την ΥΠΟΜΟΝΗ.
edit-in-place και update βάσης δεδομένων
Λοιπον έκανα κάποιες αλλαγές στο update query ωστε να συμπεριλαμβάνει και το e-mail το οποιο e-mail το έχω περάσει πρώτα σε μια session variable ώστε να "περνάει" από σελίδα σε σελίδα...και εδώ αρχίζει το πρόβλημα.
Στην σελίδα που στέλνονται τα δεδομένα με ajax(testajax.php) υπάρχει αυτή η session variable και περνάει σαν argument στην function που πραγματοποιεί το update-δηλαδή:
Τα υπόλοιπα arguments είναι και αυτά δεδομένα που στέλνονται με ajax(δείτε τα προηγούμενα posts).
To $email όμως στο οποίο περνάει η session variable(εφόσον αυτή όντως είναι το email του χρήστης) χαρακτηρ'ιζεται ως undefined...γιατί αυτό;
Η session variable που απεικονίζεται παραπάνω ΔΕΝ στέλνεται με ajax απλώς περνάει από PHP script σε PHP script...βέβαια νομίζω ότι αυτό το τελευταίο δεν γίνεται εδω πέρα, δεν ξέρω γιατί...αλλά αυτή πρέπει να είναι η αιτία του προβλήματος.
Στην σελίδα που στέλνονται τα δεδομένα με ajax(testajax.php) υπάρχει αυτή η session variable και περνάει σαν argument στην function που πραγματοποιεί το update-δηλαδή:
Κώδικας: Επιλογή όλων
$nme=mysql_real_escape_string($_POST['name']);
$lstname=mysql_real_escape_string($_POST['lastname']);
$btype= mysql_real_escape_string($_POST['btype']);
$email=$_SESSION['valid_user'];
if(ajax_update_personal($nme,$lstname,$btype,$email))
{$success='1';}
else
{$success='0';}
To $email όμως στο οποίο περνάει η session variable(εφόσον αυτή όντως είναι το email του χρήστης) χαρακτηρ'ιζεται ως undefined...γιατί αυτό;
Η session variable που απεικονίζεται παραπάνω ΔΕΝ στέλνεται με ajax απλώς περνάει από PHP script σε PHP script...βέβαια νομίζω ότι αυτό το τελευταίο δεν γίνεται εδω πέρα, δεν ξέρω γιατί...αλλά αυτή πρέπει να είναι η αιτία του προβλήματος.
edit-in-place και update βάσης δεδομένων
Στη σελίδα από την οποία κάνεις το ajax post υπάρχει το $_SESSION['valid_user'] και δεν είναι undefined;
Στο testajax.php έχεις session_start(); στην αρχή?
Ότι θα πέρναγε με κανονικό post θα πρέπει να περάσει και με ajax post, δεν αλλάζει το session id ή κάτι άλλο οπότε μάλλον κάτι από τα δυο παραπάνω φταίει, από όσο φαντάζομαι.
Στο testajax.php έχεις session_start(); στην αρχή?
Ότι θα πέρναγε με κανονικό post θα πρέπει να περάσει και με ajax post, δεν αλλάζει το session id ή κάτι άλλο οπότε μάλλον κάτι από τα δυο παραπάνω φταίει, από όσο φαντάζομαι.
edit-in-place και update βάσης δεδομένων
Eίχες δίκιο, το παραπάνω έφταιγε...thanks.alou έγραψε:
Στο testajax.php έχεις session_start(); στην αρχή?
Απορώ πως το είχα ξεχάσει.
Μέλη σε σύνδεση
Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης