freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

Μεταβλητές από js αρχείο σε php


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » JavaScript και Frameworks
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [9 Μηνύματα]      Bookmarks Tags: phpαρχείο Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
burzum


Μέλος από: 01 Ιουν 2016
Μηνύματα: 7

View users profile
ΜήνυμαΣτις: 12 Ιουλ 2016 15:58    Θέμα: Μεταβλητές από js αρχείο σε php Απάντηση με παράθεση  Mark this post and the followings unread

Καλησπέρα σας,
Ας υποθέσουμε ότι έχουμε τα εξής αρχεία: index.php, save.js και save.php
Το index.php έχει μία μεταβλητή της οποίας την τιμή προωθεί στο save.js.
To save.js κρατάει την τιμή από την προηγούμενη μεταβλητή και δίνει τιμή σε άλλη μία.

Το save.php θέλω να δείξει αποτελέσματα από ένα query το οποίο εξαρτάται από τις δυο προηγούμενες μεταβλητές.
Πως μπορώ να περάσω τις τιμές από αυτές τις 2 μεταβλητές στο save.php?
Μέχρι το save.js είμαι ΟΚ (με alert βλέπω τις τιμές και των 2 μεταβλητών) αλλά δεν μπορώ να τις περάσω στο save.php για να εκτελέσω το query.

Όποιος μπορεί ας με βοηθήσει γιατί έχω κολλήσει μέρες με αυτό.

Σας ευχαριστώ προκαταβολικά.
alou
Script Master

Μέλος από: 24 Αυγ 2007
Μηνύματα: 256+

View users profile Visit posters website
ΜήνυμαΣτις: 12 Ιουλ 2016 16:22    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Θα έπρεπε να δείξεις κάτι πιο συγκεκριμένο αλλά έστω και έτσι, το πιο απλό πράγμα που μπορείς να κάνεις είναι να στείλεις τις μεταβλητές στο url και να τις πάρεις με get στο save.php

Έστω ότι οι μεταβλητές σου υπάρχουν σε javascript σαν foo, bar
κώδικας:

var foo = "yey", bar = "nay";
var url = 'path/to/save.php?var1=' + foo + '&var2=' + bar;
window.location = url;


θα σε πάει εκτελώντας το στο someurl/save.php?var1=yay&var2=nay

Εκεί, θα πάρεις τις τιμές yay, nay στην php από GET
http://php.net/manual/en/reserved.variables.get.php

κώδικας:

$foo = $_GET["foo"]; //yay
$bar = $_GET["bar"]; //nay
burzum


Μέλος από: 01 Ιουν 2016
Μηνύματα: 7

View users profile
ΜήνυμαΣτις: 12 Ιουλ 2016 18:55    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Ευχαριστώ ΠΑΡΑ πολύ για την απάντηση. Λειτουργεί άψογα, τουλάχιστον σύμφωνα με το παράδειγμα που ανέφερα.

Έχω όμως ένα πρόβλημα το οποίο δεν θα είχε δημιουργηθεί αν ήμουν πιο συγκεκριμένος.

Η μία μεταβλητή είναι όντως το id το οποίο θα χρησιμοποιήσω για mysql query.
Η δεύτερη μεταβλητή "κουβαλάει" μπόλικη πληροφορία γιατί είναι από canvas.toDataURL() και δεν μπορώ να την πάρω με GET στο php αρχείο (Request-URI Too Long).
Αν καταφέρω να το περάσω με κάποιο τρόπο στο php ξέρω/μπορώ να το διαχειριστώ με διάφορους τρόπους.

Το θέμα είναι ότι με GET δεν περνάει.
burzum


Μέλος από: 01 Ιουν 2016
Μηνύματα: 7

View users profile
ΜήνυμαΣτις: 12 Ιουλ 2016 19:50    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

burzum ανέφερε:
Ευχαριστώ ΠΑΡΑ πολύ για την απάντηση. Λειτουργεί άψογα, τουλάχιστον σύμφωνα με το παράδειγμα που ανέφερα.

Έχω όμως ένα πρόβλημα το οποίο δεν θα είχε δημιουργηθεί αν ήμουν πιο συγκεκριμένος.

Η μία μεταβλητή είναι όντως το id το οποίο θα χρησιμοποιήσω για mysql query.
Η δεύτερη μεταβλητή "κουβαλάει" μπόλικη πληροφορία γιατί είναι από canvas.toDataURL() και δεν μπορώ να την πάρω με GET στο php αρχείο (Request-URI Too Long).
Αν καταφέρω να το περάσω με κάποιο τρόπο στο php ξέρω/μπορώ να το διαχειριστώ με διάφορους τρόπους.

Το θέμα είναι ότι με GET δεν περνάει.



Έκανα/βρήκα το παρακάτω:
κώδικας:

var id = test;
var img = canvas.toDataURL();
$.ajax({
type: "POST",
url: 'save.php',
data: {someid: id, image: img},
});


Στο save.php παίρνω με POST αυτές τις τιμές και προσπαθώ να τις κάνω echo αλλά δεν μου εμφανίζει τίποτα (δεν ανοίγει καν το save.php για να δω τι τιμές έχουν περάσει εκεί).
korgr
Honorary Member

Μέλος από: 07 Οκτ 2008
Βοηθήματα: 5
Scripts: 2
Μηνύματα: 256+

Περιοχή: Corinth
View users profile
portfolio skype 
ΜήνυμαΣτις: 12 Ιουλ 2016 20:00    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

κώδικας:
var id = test;
var img = canvas.toDataURL();
$.ajax({
type: "POST",
url: 'save.php',
data: {someid: id, image: img},
success: function(response){
console.log(response);
}
});


στο save.php βάλε:
κώδικας:

var_dump($_POST['someid']);
var_dump($_POST['image']);


και θα τα δεις στην κονσόλα της javascript
Αν δεν ξέρεις πως να ανοίξεις την κονσόλα:
δεξί κλικ στη σελίδα σου -> Inspect element και μετά στο tab Console

_________________
Projects: www.topgr.gr | www.ktizo.gr | Odyssey CMS | Οικονομική διαχείριση εσόδων-εξόδων
burzum


Μέλος από: 01 Ιουν 2016
Μηνύματα: 7

View users profile
ΜήνυμαΣτις: 12 Ιουλ 2016 20:15    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Ωραία...στην κονσόλα βλέπω τις τιμές των μεταβλητών.
Επίσης άλλαξα το save.php έτσι ώστε να δημιουργεί ένα txt αρχείο στο οποίο γράφει αυτές τις μεταβλητές και τις βλέπω και εκεί.

Πως όμως θα ανοίξω το save.php ώστε να προχωρήσω σε άλλες ενέργειες σύμφωνα με αυτές τις μεταβλητές.
Ο λόγος που θέλω οι μεταβλητές να περάσουν στο τελευταίο php αρχείο είναι γιατί εκεί ο χρήστης συμπληρώνει μία φόρμα. Στο τέλος θα πατάει κάποιο submit και θα τα περνάει όλα μαζί σε κάποιον πίνακα στη βάση.
alou
Script Master

Μέλος από: 24 Αυγ 2007
Μηνύματα: 256+

View users profile Visit posters website
ΜήνυμαΣτις: 12 Ιουλ 2016 21:14    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Μας έχεις μπερδέψει λίγο, δείξε τον κανονικό κώδικα με κάποιο παράδειγμα που θες να στείλεις, αυτό που λες πάντως σημαίνει ότι κάνεις κανονικό post τις τιμές στο url του save.php, η ajax δεν έχει κάποιο λόγο ύπαρξης.

Εκτός αν γράψεις κάπου πρώτα τα canvas data και μετά τα πάρεις από εκεί, αλλά δεν βρίσκω τον λόγο.
burzum


Μέλος από: 01 Ιουν 2016
Μηνύματα: 7

View users profile
ΜήνυμαΣτις: 13 Ιουλ 2016 13:55    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Το index.php
κώδικας:
<?php
$selected_id = $_GET['id']; //Το περνάω εδώ για να καταλήξει στο τελικό php μέσω του save.js
?>
<html>
<head>
   <title>Canvas</title>
   <link rel="stylesheet" href="css_js/bodyChart.css">
   <script type="text/javascript">var testVar = "<?= $selected_id ?>";</script>
   <script type="text/javascript" src="save.js"></script>
   <script type="text/javascript" src="//code.jquery.com/jquery-2.1.0.min.js"></script>
</head>
<body style='margin: 0'>
   <div id="toolbar">
   <input id="patID" type="text" value="<?php echo $selected_id ?>"></input>
      <div id="rad">
         Radius <span id="radval">10</span>
         <div id="decrad" class="radcontrol">-</div>
         <div id="incrad" class="radcontrol">+</div>
      </div>
      <div id="colors">
      </div>
      <div id="save">
         Save
      </div>
   </div>
   <canvas id="canvas" style="display: block;">
      This browser does not support canvas!!!
   </canvas>
   <script src="css_js/main.js"></script>
   <script src="css_js/radcontrol.js"></script>
   <script src="css_js/colors.js"></script>
   <script src="css_js/save.js"></script>
</body>
</html>


To save.js
κώδικας:
var saveButton = document.getElementById('save');
saveButton.addEventListener('click', getValue);

function getValue() {
   var id = testVar;
   var bodyChart = canvas.toDataURL();
   alert("ID from php file: " + id + bodyChart);
   
   $.ajax({
        type: "POST",
        url: './save.php',
        data: {patientID: id, image: bodyChart},
      success: function(response) {
         console.log(response);
      }
    });
}


To save.php
κώδικας:
<?php
if (isset($_POST['patientID']) && isset($_POST['image'])) {
   $x = $_POST['patientID'];
    echo "The variable received to the final php file is " . $x;
   $data = $_POST['image'];

   $data = str_replace('data:image/png;base64,', '', $data);
   $data = str_replace(' ', '+', $data);

   $img = base64_decode($data);

   $path = 'bodyChartImages/' . uniqid() . '.png';
   
   echo $path;

   if(file_put_contents($path, $img)){//Εδώ γραφω σε ένα txt για να επιβεβαιώσω ότι οι μεταβλητές περνάνε σωστά
      $myfile = fopen("newfile.txt", "w") or die ("Unable to open file!");
      $txt = $path . "\n" . $x;
      fwrite($myfile, $txt);
      fclose($myfile);
   } else {
      header("HTTP/1.1 500 Internal Server Error");
   }   
} else {
   echo 'no variable received';
}
?>


Γενικότερα και μέχρι ένα σημείο λειτουργεί σωστά. Ο χρήστης ζωγραφίζει και όταν πατάει save στο index.php το image σώνεται στο φάκελο που αναφέρεται στο save.php.

Αυτό είναι το αρχικό σημείο της εφαρμογής. Αφού πατηθεί το save, θέλω ο χρήστης να μπορεί να συνεχίσει σε ένα άλλο php αρχείο στο οποίο θα σημπληρώνει μία φόρμα.
Αφού συμπληρωθεί και η φόρμα, με το submit θα περνάνε στη βάση όλα τα δεδομένα που πρόσθεσε ο χρήστης εκεί ΚΑΙ το path για το image που δημιουργήθηκε καθώς και το id του χρήστη που το δημιούργησε (τo id έρχεται από το πρώτο php αρχείο).

Το πρόβλημά μου είναι ότι ενώ καταφέρνω να περάσω τις μεταβλητές στο τελικό save.php και να σώσω το image στο σχετικό φάκελο, δεν μπορώ να το ανοίξω για να συνεχίσω με κάποια φόρμα. Δεν μου δείχνει ούτε αυτά που του λέω να κάνει echo (ενώ οι μεταβλητές έχουν περάσει σωστά - επιβεβαιώνεται και από το .txt το οποίο γράφεται από το save.php).
Δεν ξέρω τι κάνω λάθος.
Το δούλευα όλο το βράδυ για να το φτάσω σε αυτό το σημείο.
burzum


Μέλος από: 01 Ιουν 2016
Μηνύματα: 7

View users profile
ΜήνυμαΣτις: 13 Ιουλ 2016 14:20    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Αυτό που θέλω να καταφέρω είναι απλά να προβάλω στο browser αυτές τις δύο μεταβλητές και από 'κεί και πέρα θα καταφέρω να τις δουλέψω.
Με λίγα λόγια αν μπορείτε υποδείξτε μου πως θα καταφέρω με το save που πατάει ο χρήστης να ανοίγει το save.php στο browser για να μπορώ να δώ αυτά που έχω κάνει echo.
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [9 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » JavaScript και Frameworks


Σχετικά θέματα
 Θέματα   Απ/σεις   Αποστολέας   Τελευταίο μήνυμα 
YAHOO.util.Event.addListener(window,"beforeunload",this.exit_prompt,this,true) --> false? 1 philos 28 Ιουν 2016 08:16
alou Εμφάνιση τελευταίου μηνύματος
 
Τώρα είναι 24 Απρ 2017 11:28 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos