Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP Berechnung mit JS aufrufen und variable übergeben

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP Berechnung mit JS aufrufen und variable übergeben

    Hallo Liebes Forum,

    Ich habe in Problem mit einer Berechnung eines Werts, der nur über PHP berechenbar ist. Das HTML Formular beeinhaltet ein file-upload-Feld. Es ruft mein upload script auf.

    HTML:
    Code:
    <form id="myForm" name="myform" action="upload.php" method="post" enctype="multipart/form-data" >
    			<tr>
    			<td colspan="2"><h1>Ihre Datei</h1></td>
    			</tr>
    			<tr>
    				<td><b onmouseover="Tip('Laden Sie eine Datei von ihrem Computer auf unseren Webserver')" onmouseout="UnTip()">Datei Auswählen:</b></td>
    				<td>
    				<input class="input" type="file" name="myfile">
    				</td>
    			</tr>
    			<tr>
    				<td><b onmouseover="Tip('Bestätigen Sie bitte den Upload.')" onmouseout="UnTip()">Bestätigen:</b></td>
    				<td>
    				
    				<input id="button" class="input" type="submit"  value="Datei hochladen">
    				</td>
    			</tr>
    			<tr>
    				<td><b onmouseover="Tip('Fortschritt des Uploads in Prozent.')" onmouseout="UnTip()">Fortschritt:</b></td>
    				<td>
    					<div id="progress">
    					<div id="bar"></div>
    					<div id="percent">0%</div >
    					</div>
    				</td>
    			</tr>
    			<tr>
    				<td><b onmouseover="Tip('Fortschritt des Uploads in Prozent.')" onmouseout="UnTip()">Maßeinheit:</b></td>
    				<td>
    				<select name="groesse" id="groesse" class="input">
    						<option value="mm">Millimeter(mm)</option>
    						<option value="cm">Centimeter(cm)</option>
    						<option value="inch">Zoll(inch)</option>
    				</select>	
    				</td>
    			</tr>
    		</form>
    Nach erfolgreichem upload, soll eine berechnung stattfinden, die ich hier nicht posten kann, da der code gekauft ist. Hauptsache ist, dass es eine reele zahl berechnet, die in der variable $vol gespeichert wird. Diese variable will ich jetzt in meinem html wiederhaben.
    PHP:
    PHP-Code:
    <?php

    $output_dir 
    "uploads/";
     
    if(isset(
    $_FILES["myfile"])){

        
    //Filter the file types , if you want.
        
    if ($_FILES["myfile"]["error"] > )
        {
          echo 
    "Error: " . @$_FILES["file"]["error"] . "<br>";
        }
            else
            {
                

                
    move_uploaded_file($_FILES["myfile"]["tmp_name"],$output_dir$_FILES["myfile"]["name"]);
     
                echo 
    "Uploaded File :".$_FILES["myfile"]["name"];
                
    // hier ist $vol dann definiert.
            
    }
    }

    ?>
    Dann habe ich noch ein jquery Funktion um eine Upload-Fortschritt leiste anzuzeigen.
    Code:
    $(document).ready(function() {		
    	var options = {
    	beforeSend: function()
    		{
    		$("#progress").show();
    		//clear everything
    		$("#bar").width('0%');
    		$("#message").html("");
    		$("#percent").html("0%");
    		},
    			uploadProgress: function(event, position, total, percentComplete)
    			{
    			$("#bar").width(percentComplete+'%');
    			$("#percent").html(percentComplete+'%');
    			},
    		success: function()
    		{
            $("#bar").width('100%');
            $("#percent").html('100%');
    		},
    			complete: function(response)
    			{
    			var filename = document.myform.elements.myfile.value;
    			var laenge = filename.length;
    			var endung = filename.substring((laenge-3), laenge);
    			document.forms.bestellung.elements.dateiname.value = filename;
    			document.forms.bestellung.elements.groesse.value = document.forms.myform.elements.groesse.value;
    		
    			if(endung == "stl"){
    			dateiokay = true;	
    			}
    				else{
    				$("#percent").html("<font color='red'>Nur .STL</font>");
    				}
    			},
    		error: function()
    		{
            $("#percent").html("<font color='red'>ERROR</font>");
    		dateiokay = false;
    		}
    	};
         $("#myForm").ajaxForm(options);
    });
    Ich hoffe ihr könnt daraus irgendwas machen, dass ich die $vol variable irgendwie mit javascript, jquery oder html entgegenehmen kann.

    Wäre echt nett, wenn ihr mir helfen könntet.


  • #2
    stichwort: ajax. mal danach googlen.
    Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

    Kommentar


    • #3
      Habe den Post 2x gelesen und verstehe was du machen willst, aber wo ist deine Frage?
      Umso konkreter die Frage, umso konkreter die Antwort.
      Ansonsten ärgerst du dich über solche Antworten wie vom Poster über mir

      Kommentar


      • #4
        beim Submitten des Formulars "myfile", will ich nach der filespeicherung die variable $vol übergeben, damit ich sie ausgeben kann als value vom button z.B. ich brauche sie als javascript variable mit anderen worten...
        Die Filespeicherung funktioniert und die berechnung von $vol auch, nur mit der übergabe von $vol nach js habe ich probleme. mit ajax kenne ich mich nicht aus, gibt es keine andere lösung?

        Kommentar


        • #5
          Dei Möglichkeiten die sich für mich aus deiner Beschreibung ergeben:

          1.)
          Ist $vol in der Datei, heißt du kannst $vol erst nach dem Auswerten der Datei ausgeben?
          Wenn du dabei kein Ajax verwenden willst, kannst du der Seite nach dem Upload per redirect auf deine Berechnungsseite lenken:
          <meta http-equiv="refresh" content="0; url=http://example.com/" />
          in den Head Bereich.
          Würde wahrscheinlich keiner hier im Forum empfehlen, aber erledigt was du möchtest, mit dem Wissensstand den zu hast, schnell.

          2.)
          Falls $vol bereits berechnet werden kann ohne dass das Dokument ausgelesen werden muss und du immer noch kein Ajax verwenden willst, aber einen bestimmten Wert brauchst von dem PHP Formular das mit dem Dateiupload abgeschickt wird, dass kannst du beides parallel machen.
          Dateiupload und Übertragung von Formulardaten: http://stackoverflow.com/questions/5...-a-file-in-php

          3.)
          Alternativ benutze jquery. Das ist eine Bibliothek, die dir den Umgang mit dem ominösen 'Ajax' erleichtert. Google dazu z.B.: 'file upload with parameters jquery' 'file upload jQuery post data'

          Und wie ich gerade sehe nutzt du es sowieso schon, '.ajaxForm'.
          Wenn du deinen Code nicht kennst und verstehst, wird es nicht leichter wenn wir dir weitere Codeschnipsel geben. Du scheinst das AjaxForms Plugin zu nutzen. Dann ist das deine Anlaufstelle: http://malsup.com/jquery/form/#tab4

          Dort steht nämlich genau das:
          function showRequest(formData, jqForm, options) {
          function showResponse(responseText, statusText, xhr, $form) {
          Das ist das 'Ajax', was der Vorposten meinte.
          Bitte lese dich ein, in die Dinge, die du verwendest.

          Kommentar


          • #6
            Alles Klar. Mit der ajax request kann ich was anfangen. Ich fahr nur erstmal auf studienfahrt, aber ich denke ich krieg das hin.
            Die Funktion mit ajax hatte ich mir irgenwo kopiert, aber ich werd mich da mal belesen.
            Danke erstmal.

            Kommentar


            • #7
              Willst die $vol Variable nur ausgeben? Dazu reicht ein
              PHP-Code:
              echo $vol
              . Eventuell in nem <div> Container.

              Willst du nachher noch den Wert weitergereichten, nimm jQuery und mach einen Aufruf wie:
              Code:
              result = $.ajax({
              		type: 'POST',
                      async: true,
                      url: 'upload.php',
                      data: variable,
                      success: function(cont){
                      	alert(cont);
                      	document.getElementById(outdiv).innerHTML = cont;
                      }
                  });
              Und in der PHP muss auch ein Ausgabe echo stehen...
              ... just be good!

              Kommentar


              • #8
                Und kann ich zwei echos von php einzeln entgegennehmen, oder muss ich sie verbinden...
                also in der php z.B

                echo "datei entgegengenommen"
                echo $vol

                kann ich das einzeln machen, oder soll ich
                echo "datei entgegengenommen",$vol

                und dann kann ich es ja mit javascript wieder zu float machen... um damit weiterzurechnen...

                Kommentar


                • #9
                  Und kann ich zwei echos von php einzeln entgegennehmen, oder muss ich sie verbinden...
                  Geht beides.
                  und dann kann ich es ja mit javascript wieder zu float machen... um damit weiterzurechnen...
                  Auf die Art nicht, aber wenn Du JSON für die Datenübertragung verwendest, ja.
                  Competence-Center -> Enjoy the Informatrix
                  PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                  Kommentar

                  Lädt...
                  X