Elxis CMS Forum

Ελληνικό Forum => Γενικά Θέματα για το Elxis CMS => Topic started by: giannis1277 on February 04, 2009, 02:00:12

Title: Υπολογισμός εξίσωσης μέσα από ιστοσελίδα
Post by: giannis1277 on February 04, 2009, 02:00:12
Καλησπέρα,
έχω φτιάξει μια ιστοσελίδα και θέλω να ενσωματώσω μια φόρμα, μέσα από την οποία ο κάθε χρήστης θα δίνει έναν αριθμό σε ένα πλαίσιο κειμένου (π.χ. αριθμός τετραγωνικών μέτρων) και θα παίρνει ως απάντηση σε ένα δεύτερο πλαίσιο κειμένου το κόστος μιας υπηρεσίας. Το κόστος θα υπολογίζεται μέσω μιας εξίσωσης σαν την ακόλουθη:

10x^2+20x+100 = κόστος σε ευρώ, όπου x=τετραγωνικά μέτρα

Συγκεκριμένα στο http://www.deyael.gr/index.php?option=com_content&task=view&id=77&Itemid=125 θέλω να αντικαταστήσω την γραφική παράσταση με την υπόψη φόρμα. Μπορεί να βοηθήσει κάποιος;

Ευχαριστώ προκαταβολικά
Title: Re: Υπολογισμός εξίσωσης μέσα από ιστοσελίδα
Post by: datahell on February 04, 2009, 09:44:01
Χρειάζεσαι λίγη javascript. Σου γράφω ένα απλό παράδειγμα του πως μπορεί να γίνει ένας τέτοιος υπολογισμός.

Έστω η φόρμα μας έχει δύο πεδία εισόδου τα οποία τα προσθέτει μετά.

πρώτο πεδίο:
<input type="text" name="pedio1" id="pedio1" value="0" class="inputbox" />

δεύτερο πεδίο:
<input type="text" name="pedio2" id="pedio2" value="0" class="inputbox" />

Επίσης χρειάζεσαι ένα κουμπί για τον υπολογισμό:
<input type="button" name="calculate" onclick="calculatesum();" class="button" />

Τέλος χρειάζεσαι μία περιοχή που να δείχνει το αποτέλεσμα της πρόσθεσης, για ευκολία θα σου βάλω ένα πεδίο text:
<input type="text" name="result" id="result" value="0" class="inputbox" />

Τώρα η javascript (θα πρέπει να μπει πάνω από τα άλλα):

<script type="text/javascript">
function calculatesum() {
     var num1 = document.getElementById('pedio1').value;
     var num2 = document.getElementById('pedio2').value;
    document.getElementById('result').value = num1 + num2;
}
</script>

Για να γίνει πιο σωστό θα πρέπει να προστεθεί στη συνάρτηση calculatesum  και ένας έλεγχος αν ο χρήστης έχει εισάγει έγκυρους αριθμούς στα πεδία οπότε αν έχει γράψει μπουρμπούτσαλα να μην του βγάλει αποτέλεσμα.
Title: Re: Υπολογισμός εξίσωσης μέσα από ιστοσελίδα
Post by: giannis1277 on November 18, 2009, 19:13:24
datahell καλησπέρα,
αν και έχουν περάσει καμιά 10αρια μήνες από την απάντησή σου (κάλιο αργά παρά ποτέ) επανέρχομαι στο συγκεκριμμένο θέμα. Έχω δοκιμάσει να το κάνω να δουλέψει αρκετές φορές αλλά τπτ.

Το μεγαλύτερό μου πρόβλημα ωστόσο δεν είναι τόσο η ακριβής μορφή του κώδικα, όσο το πως θα τον εισαγάγω ΜΟΝΟ στην υπόψη σελίδα (http://www.deyael.gr/index.php?option=com_content&task=view&id=77&Itemid=125). Δηλαδή αυτό που κάνω μέχρι τώρα είναι να δημιουργώ ένα αντικείμενο περιεχομένου, να το επεξεργάζομαι μέσω του κουμπιού html (του TinyMCE WYSIWYG Editor) όπου γράφω τα εξής:
<html>
<head>
  <script type="text/javascript">
    function convertText()
    {
      var price;
      var squares;

    squares = parseInt(document.SampleForm.Input.value);

        price = 10*squares*squares+20*squares+100;

        document.SampleForm.Output.value = price;
    }
  </script>

</head>
<body>
  <form name="SampleForm">
    <input type="text" name="Input"><br/>
    <input type="text" name="Output" readonly><br/>
    <input type="button" value="Calculate Price" onclick="convertText()">
  </form>
</body>
</html> 

Ο τρόπος αυτός όμως είναι προφανώς λάθος γιατί δεν μου αναγνωρίζει το κομμάτι του body. τί πρέπει να κάνω για να δουλέψει;

Ευχαριστώ προκαταβολικά,
Γιάννης
Title: Re: Υπολογισμός εξίσωσης μέσα από ιστοσελίδα
Post by: datahell on November 18, 2009, 19:29:29
Παντελώς λάθος....
Πάρε την συνάρτησή σου, πρόσθεσέ την σε ένα αρχείο text με κατάληξη .js και βάλε στο index.php του template σου ένα link προς αυτό το αρχείο javascript.

Παράδειγμα:
<script type="text/javascript" src="http://link/pros/arxeio/poy/periexei/synartisi.js"></script>

Στο κείμενό σου θα χρησιμοποιείς κατευθείαν την συνάρτηση αφού θα είναι ήδη δηλωμένη στο head του site.


Title: Re: Υπολογισμός εξίσωσης μέσα από ιστοσελίδα
Post by: giannis1277 on November 19, 2009, 15:52:08
Καταρχάς χίλια ευχαριστώ για την άμεση απάντησή σου,
κατά 2ον στο αρχείο .js θα βάλω όλο το παρακάτω ή μόνο τις 10 πρώτες γραμμές:
<html>
<head>
  <script type="text/javascript">
    function convertText()
    {
      var price;
      var squares;
    squares = parseInt(document.SampleForm.Input.value);
        price = 10*squares*squares+20*squares+100;
        document.SampleForm.Output.value = price;
    }
  </script>

</head>
<body>
  <form name="SampleForm">
    <input type="text" name="Input"><br/>
    <input type="text" name="Output" readonly><br/>
    <input type="button" value="Calculate Price" onclick="convertText()">
  </form>
</body>
</html> 

κατά 3ον στο κείμενο θα βάλω μόνο το όνομα του αρχείου ή όλη την διαδρομή του; (π.χ. ypologismos_eksiswshs.js ή http://www.deyael.gr/includes/js/ypologismos_eksiswshs.js)

Ευχαριστώ προκαταβολικά
Γιάννης
Title: Re: Υπολογισμός εξίσωσης μέσα από ιστοσελίδα
Post by: datahell on November 19, 2009, 19:26:58
1. Σου είπα θα βάλεις την συνάρτηση (μόνο):
function convertText() {
.....
}
τίποτα άλλο, ούτε καν <script>...

2. ΔΕΝ μπορείς μέσα σε άρθρο του elxis να γράψεις <head>....
Αυτά έχουν γίνει ήδη echo από το elxis/template σου. Θα βάλεις μόνο την html που θες (εντός του body):

3. Για λόγους ασφαλείας ο tinymce δεν σε αφήνει να χρησιμοποιήσεις κάποια Tag. Νομίζω πως είναι και το form ένα από αυτά. Αν ναι, κάνε edit τις παραμέτρους του tinymce και επέτρεψέ του να σου εμφανίζει αυτό το tag
Title: Re: Υπολογισμός εξίσωσης μέσα από ιστοσελίδα
Post by: ks-net on November 19, 2009, 19:55:12
to <form> το επιτρέπει..
το javascript όχι,  για να το επιτρέπει.. http://wiki.elxis.org/wiki/Google_AdSense_custom_module
μην σε μπερδέψει ο τίτλος στο wiki.. τα ίδια πράματα είναι.
Title: Re: Υπολογισμός εξίσωσης μέσα από ιστοσελίδα
Post by: datahell on November 19, 2009, 20:02:15
Δεν χρειάζεται να βάλει javascript αφού θα το βάλει στο index.php του template. Αν επιτρέπει "form" τότε είσαι έτοιμος.