• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak wykonać - przeładowywanie stronny

Object Storage Arubacloud
0 głosów
598 wizyt
pytanie zadane 25 września 2017 w JavaScript przez adrian588 Początkujący (470 p.)
Witam.

Jestem początkującym i mam pewien problem.

Mianowicie mam stronę w php gdzie zadeklarowałem kilka zmiennych do obliczeń.

Czyli na pierwszej stronie podaje zmienne i na dole mam button OBLICZ  po kliknięciu przenosi mnie na stronę wynik.php gdzie oczywiście mam wyniki.

Chciałbym jednak aby po kliknięciu buttona wyniki pojawiły się na pierwszej stronie poniżej wprowadzonych danych.

Jak to zrobić?

Podobny przykład jest tutaj na stronie:

http://www.zhitov.ru/pl/drywall/

gdzie po kliknięciu oblicz przeładowuje się tylko fragment strony a nie wszystko.

4 odpowiedzi

0 głosów
odpowiedź 25 września 2017 przez Assasz Nałogowiec (30,460 p.)

Jeśli obliczenia wykonujesz po stronie serwera to zainteresuj się Ajax'em.

0 głosów
odpowiedź 25 września 2017 przez CenterPL Pasjonat (19,070 p.)
Albo napisz to w JS albo zapoznaj się z AJAXem
0 głosów
odpowiedź 25 września 2017 przez adrian588 Początkujący (470 p.)
Obliczenia piszę w php.

Czyli rozumiem iż tutaj java script nie pomoże u muszę skorzystać z ajax? Tak?
komentarz 25 września 2017 przez Chess Szeryf (76,710 p.)

What's AJAX?

 

AJAX stands for Asynchronous JavaScript And XML.

https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started

0 głosów
odpowiedź 25 września 2017 przez maciej_cz Nowicjusz (140 p.)
Jeżeli koniecznie musisz wykonywać obliczenia po stronie serwera, wykorzystując kod w drugim pliku PHP, a jednocześnie chcesz uzyskać wynik na pierwszej stronie asynchronicznie, to rzeczywiście posłuży Ci do tego Ajax:

function request(zmienna1, zmienna2){

let params = 'zmienna1='+encodeURIComponent(zmienna1)+'&zmienna2='+encodeURIComponent(zmienna2);

var xhr = new XMLHttpRequest();

xhr.open("POST", 'oblicz.php', true);

xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

xhr.onload = function() {

document.getElementById('wynik').value = this.responseText; /* do pola z wynikiem przypisujesz wynik obliczeń z drugiego pliku (oblicz.php, w którym wynik zwracasz finalnie np. za pomocą echo)  

console.log(this.responseText); możesz opcjonalnie podejrzeć w konsoli co zwraca twój php, abyś był w stanie łatwo kontrolować błędy po drugiej stronie

*/

}

xhr.onerror =function() {

console.log("Info o błędzie requestu");

}

xhr.send(params); // Wysylasz żądanie do pliku oblicz.php wraz z Twoimi danymi (zmienna1, zmienna2, itd...)

}

Ostatecznie funkcje przypisz do właściwego eventu, np.:
document.getElementById('oblicz').addEventListener('click', request(zmienna1, zmienna2));
komentarz 25 września 2017 przez adrian588 Początkujący (470 p.)

A to jeszcze zapytam w ogóle z innej beczki:

czy obliczenia lepiej wykonywać w php czy też java script?

Wybrałem php ze względu aby nie było wglądu w kod.

A co do mojego tematu to zrobiłem tak:

w pliku index.html wstawiłem kod w head:

 

<script type="text/javascript">
function getXMLHttpRequestObject()
{
  try{
    return new XMLHttpRequest();
  }
  catch(e){
    try{
      return new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch(e){
      return false;
    }
  }
}

function pobierzDane()
{
  if(XMLHttpRequestObject){
    var div = document.getElementById("warstwaDanych");
    var przyciskEl = document.getElementById("przycisk1");
    przyciskEl.disabled = true;
    XMLHttpRequestObject.open("GET", "wynik.php");
    XMLHttpRequestObject.onreadystatechange = function()
    {
      if (XMLHttpRequestObject.readyState == 4 &&
          XMLHttpRequestObject.status == 200) {
        div.innerHTML = XMLHttpRequestObject.responseText;
        przyciskEl.disabled = false;
      }
    }
    XMLHttpRequestObject.send(null);
  }
}

var XMLHttpRequestObject = getXMLHttpRequestObject();
</script>

 

 

w body

 

<div>
<input type="button" value="Kliknij tu"
       onclick="pobierzDane();" id="przycisk1" />
</div>
<div id="warstwaDanych">

 

 

I teraz tak po kliknieciu pobiera mi plik wynik.php tylko z błędami. Tak jakby nie miał danych do obliczeń. A plik wynik.php działa bo sprawdzałem i podaje całą maję obliczeń. A nie wczytuje do pierwszej strony.

Jakieś pomysły?

 

Wyrzuca na początku iż brak wprowadzonych danych ze strony właśnie formularza. A dane oczywiście są wprowadzone.

Notice: Undefined index: wysokosc in C:\xampp\htdocs\obliczenia\wynik.php on line 26

Notice: Undefined index: szerokosc in C:\xampp\htdocs\obliczenia\wynik.php on line 27

Notice: Undefined index: srednicaglowne in C:\xampp\htdocs\obliczenia\wynik.php on line 28

 

i tak za kolejną. Jak zrobić aby to wykonało na serwerze i już wróciło dane?

komentarz 25 września 2017 przez Chess Szeryf (76,710 p.)

Obliczenia wykonuj po stronie back-endu. Dlaczego po stronie servera, a no dlatego, żeby nikt nie mógł zmienić wartości w kodzie. Jeśli to zrobi, to po F5 wartość zostaje oryginalna, bo server na to nie pozwoli.

Wklej skrypt JS (bez type="...") pod body.

// pseudo-code

HTML{ 

}
<script>

</script>

 

komentarz 25 września 2017 przez adrian588 Początkujący (470 p.)
zamieściłem skrypt JS zamiast w sekcji head w sekcji body  ale nadal to samo.

Czyli wyrzuca błędy z braku danych do obliczeń:/

 

Napisze jeszcze raz jak to wygląda.

Mam formularz z inputami gdzie wpisuje dane. Dane przesyłam metodą POST do innego pliku. W drugim wpiku odbieram te zmienne i wykonuje na nich różnego typu obliczenia, mnożenia itp. gdzie otrzymuje wyniki.

Chcę aby w tym pierwszym formularzu pojawiły się te wyniki po kliknięciu guzika - oblicz.

Wszystko się niby ładuje ale cały czas błędy iż nie zdefiniowano zmiennych.

Chyba że powinienem zrobić to wszystko w jednym pliku?
komentarz 25 września 2017 przez Chess Szeryf (76,710 p.)
Najwyraźniej coś źle napisałeś po stronie back-endu.
komentarz 25 września 2017 przez adrian588 Początkujący (470 p.)

Ale jak bezpośrednio kliknę na pierwszej stronie oblicz i przechodzi na stronę z wynikami to wszystko wyświetla się dobrze.. i wszystkie obliczenia działają...

a tylko w tej metodzie aby to było na tej samej stronie mam problem z błędami typu:

Notice: Undefined index: wysokosc in C:\xampp\htdocs\obliczenia\wynik.php on line 26

Notice: Undefined index: szerokosc in C:\xampp\htdocs\obliczenia\wynik.php on line 27

Notice: Undefined index: srednicaglowne in C:\xampp\htdocs\obliczenia\wynik.php on line 28
 

komentarz 25 września 2017 przez Chess Szeryf (76,710 p.)

milk.php:

<form method="post" onsubmit="event.preventDefault();">
	<input type="text" id="data1"/>
	<input type="text" id="data2"/>
	<input type="submit" id="ajaxButton"/>
</form>

<div id="insertdata"></div>
var insertdata = document.getElementById('insertdata');

(function() {

  var httpRequest;
  document.getElementById("ajaxButton").addEventListener('click', makeRequest);

  function makeRequest() {
	  
    httpRequest = new XMLHttpRequest();
	
    if (!httpRequest) {
	  
		  alert('Giving up :( Cannot create an XMLHTTP instance');
		  return false;
    }
    httpRequest.onreadystatechange = alertContents;
    httpRequest.open('GET', 'milk2.php?data1='+document.getElementById('data1').value+'&data2='+document.getElementById('data2').value);
    httpRequest.send();
  }

  function alertContents() {
    if (httpRequest.readyState === XMLHttpRequest.DONE) {
      if (httpRequest.status === 200) {
       insertdata.innerHTML = (httpRequest.responseText);
      } else {
        alert('There was a problem with the request.');
      }
    }
  }
})();

milk2.php:

<?php
function sum($number1,$number2){
	return $number1+$number2;
}
echo sum($_GET['data1'],$_GET['data2']);
?>

Template: https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started

komentarz 25 września 2017 przez adrian588 Początkujący (470 p.)
Nie mogę się w tym niestety połapać:/....
komentarz 25 września 2017 przez Chess Szeryf (76,710 p.)
Wpisujesz w pierwsze pole, np.: 5, w drugie pole 10; klikasz na submit, a wynik to 15. Oczywiście musisz być na stronie milk.php.

http://phpmajster.blogspot.com/2015/06/ajax-podstawy-ajax-i-obiekt.html
komentarz 25 września 2017 przez adrian588 Początkujący (470 p.)

Wklejam poniżej część formularza z pliku - belkazgianie.php

 

<form = action="wynik.php" method="post">

	<h2>Podaj dane do obliczeń:</h2>
		
		
<!-- ################# GEOMETRIA PRZEKROJU ################## -->
		<div id="geometriaprzekroju">
			GEOMETRIA PRZEKROJU <br/><br/> 
			 Szerokość belki <input type="text" name="szerokosc" value="30"> cm <br/>
			 Wysokość belki <input type="text" name="wysokosc" value="25"> cm <br/><br/>


			
			Ilość prętów w belce
				<select name="iloscpretowwbelce">
					<option value="2">2</option> 
					<option value="3">3</option>
		  			<option selected value="4">4</option>
		  			<option value="5">5</option> 
		  			<option value="6">6</option> 
					<option value="7">7</option>
		  			<option value="8">8</option>
		  			<option value="9">9</option>
		  			<option value="10">10</option> 
					<option value="11">11</option>
		  			<option value="12">12</option>
		  			<option value="13">13</option>
		  			<option value="14">14</option> 
					<option value="15">15</option>
		  			<option value="16">16</option>
		  			<option value="17">17</option>  
		  			<option value="18">18</option> 
		  		</select> sztuk 
			<br/>

		</div>			

<!--  ####################  STAL ZBROJENIOWA ################## -->
		
		<div id="klasastali">
			DANE MATERIAŁOWE STAL<br/><br/>
			średnica prętów głównych 
			<select name="srednicaglowne">
		  			<option value="8" >8</option>
		  			<option value="10">10</option>
		  			<option selected value="12">12</option>
		  			<option value="14">14</option>
		  			<option value="16">16</option>
		  			<option value="18">18</option>
		  			<option value="20">20</option>
		  			<option value="22">22</option>
		  			<option value="25">25</option>
		  			<option value="28">28</option>
		  			<option value="32">32</option>
		  			<option value="34">34</option>
		  			<option value="36">36</option>
		  			<option value="40">40</option>
		  			<option value="45">45</option>
				</select> mm 

			<br/>
			średnica strzemion
				<select name="srednicastrzemiona">
					<option value="6">6</option> 
					<option selected value="8">8</option>
		  			<option value="10">10</option>
		  			<option value="12">12</option> 
		  		</select>mm 
			<br/>


Na końcu mam przycisk:

<h2><center><input type="submit" name="oblicz" value="OBLICZ !"></center></h2>

			</form>

 

I to jest oczywiście nie cały kod ale tak to wygląda...w pierwszym pliku

komentarz 25 września 2017 przez adrian588 Początkujący (470 p.)

W drugim pliku WYNIK.PHP wygląda to tak:

 

<link rel="stylesheet" href="styles.css" type="text/css"/>
<div class="wynik">


		<?php



			
// 1      ######### ZMIENNE POBRANE Z ARKUSZA  ###################
			$wysokosc = $_POST['wysokosc'];
			$szerokosc = $_POST['szerokosc'];
			$srednicaglowne = $_POST['srednicaglowne'];
			$srednicastrzemiona = $_POST['srednicastrzemiona'];
			$klasastalipretyglowne = $_POST['klasastalipretyglowne'];
			$klasabetonu = $_POST['klasabetonu'];
			$klasaekspozycji = $_POST['klasaekspozycji'];
			$jakoscprac = $_POST['jakoscprac'];
			$Msd = $_POST['Msd'];
			$iloscpretowwbelce = $_POST['iloscpretowwbelce'];
			$maxwymiarkruszywa = $_POST['maxwymiarkruszywa'];


// 2.		############ OBLICZENIA ###################

//  2.1		Przypisanie wartośći parametrów stali zbrojeniowej - pręty główne
					if ($klasastalipretyglowne == "St0S-b") 
					{
						$fyd = 190;
						$fyk = 220;
					}
					if ($klasastalipretyglowne == "St3SX-b") {
						$fyd = 210;
						$fyk = 240;
					}
					if ($klasastalipretyglowne == "St3SY-b") 
					{
						$fyd = 210;
						$fyk = 240;
					}

 

Dalej mam trochę jeszcze obliczeń:

/ 3.         OBLICZENIA ####################################

// 3.1			Obliczanie powierzchni belki
					$pow = $wysokosc * $szerokosc; 
					$powwm = $pow * 0.0001;
//3.2 Obliczeanie Cnom
					$Cnom = max($srednicaglowne, 20, ($cmin+$Cdev));
//3.3 Położenie osi ciężkości zbrojenia głównego
					$a1 = $Cnom + $srednicastrzemiona + (0.5 * $srednicaglowne);
//3.4 Wysokość użyteczna przekroju
					$d = ($wysokosc * 10 - $a1) / 1000;
//3.5 Bezwymiarowa wartość momentu zginającego przekrój
					$Sceffniezaokraglone = $Msd / ($fcd * 1000 * $szerokosc / 100 * $d *$d);
					$Sceff = round($Sceffniezaokraglone, 3);

//3.6 Względna efektywna wysokość strefy ściskanej i porównanie z wartością graniczną
					$Xieffniezaokraglone = 1 - (sqrt(1-(2 * $Sceff)) );
					$Xieff = round($Xieffniezaokraglone, 3);
//3.7 Umowne położenie osi obojętnej przekroju
					$xeffniezaokraglone = $d * $Xieff;
					$xeff = round($xeffniezaokraglone, 3);
					
//3.8 Pole powierzchni zbrojenia
					$As1niezaokraglone = (($fcd * $szerokosc * $xeff) / $fyd) * 100;
					$As1 = round($As1niezaokraglone, 2);

// 3.9 Sprawdzenie czy zbrojenie mieści się z jednej lini w belce
					$Slmin = max(20, $srednicaglowne, ($maxwymiarkruszywa +5));

					$Slniezaokraglone = ($szerokosc * 10 - (2 * $Cnom) - (2 * $srednicastrzemiona) - ($iloscpretowwbelce * $srednicaglowne)) / ($iloscpretowwbelce - 1);
					$Sl = round($Slniezaokraglone, 2);




		################# WYŚWIELANIE #################

			echo "<font color=#FF7FOO>USTALONO GEOMETRIĘ: </font>"."<br/>";
			echo "Ustaliłeś wysokość belki na ".$wysokosc." cm, a szerokość na ".$szerokosc." cm <br/>";
			echo "Pole powierzchni belki wynosi ".$pow."cm <sup>2</sup> "." co w przeliczeniu wynosi ".$powwm." m <sup>2</sup>"."<br/>";

			echo "<br>"; 
			echo "<font color=#FF7FOO>USTALONO OBCIĄŻENIA: </font>"."<br/>";
			echo "Obliczeniowy moment zginający wynosi: ".$Msd." kNm"."<br/>";


			echo "<br>"; 
			echo "<font color=#FF7FOO>DANE MATERIAŁOWE STAL: </font>"."<br/>";
			echo "Przyjąłeś średnicę prętów głównych &Oslash ".$srednicaglowne." mm "."Średnica strzemione &Oslash ".$srednicastrzemiona." mm <br/>";
			echo "Przyjąłeś klasę stali ".$klasastalipretyglowne." Gdzie charakterystyczna granica plastyczności stali wynosi ".$fyk." MPa natomiast obliczeniowa granica plastyczności stali wynosi ".$fyd." MPa <br/>";

			echo "<br>"; 
			echo "<font color=#FF7FOO>DANE MATERIAŁOWE BETON: </font>"."<br/>";
			echo "Przyjąłeś klasę betonu ".$klasabetonu." dla której wytrzymałośc obliczeniowa na ściskanie wynosi: ".$fcd." MPa natomiast średnia wytrzymałość nna rozciąganie wynosi ".$fctm."<br/>";

			echo "Przyjąłeś klasę ekspozycji ".$klasaekspozycji." Dla której minimalna grubość otuliny c<sub>min</sub>= ".$cmin." mm "."<br/>";

			echo "<br>";
			echo "<br>";
			echo "<br>"; 
			echo "<font color=#FF7FOO>OBLICZENIA: </font>"."<br/>";

I tutaj wszystko się wyświetla..

Nie wiem jednak jak te wyniki przenieść pod formularz z pliku belkazginanie.php

komentarz 25 września 2017 przez Chess Szeryf (76,710 p.)
Przedstawiłem ci całe rozwiązanie metodą GET. Weź ten kod, co podałem powyżej i go przerób pod swój formularz, jaki problem?
komentarz 25 września 2017 przez adrian588 Początkujący (470 p.)
Po dodaniu skrytptu JS wszystkie pola echo tekstowe są widoczne.. natomiast wszędzie są błędy gdzie są zmienne.. tak jakby ich nie było podanych..
komentarz 25 września 2017 przez adrian588 Początkujący (470 p.)

W swoim pierwszym pliku w sekcji body wkleiłem taki kod:

<script>
function getXMLHttpRequestObject()
{
  try{
    return new XMLHttpRequest();
  }
  catch(e){
    try{
      return new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch(e){
      return false;
    }
  }
}

function pobierzDane()
{
  if(XMLHttpRequestObject){
    var div = document.getElementById("warstwaDanych");
    var przyciskEl = document.getElementById("przycisk1");
    przyciskEl.disabled = true;
    XMLHttpRequestObject.open("POST", "wynik.php");
    XMLHttpRequestObject.onreadystatechange = function()
    {
      if (XMLHttpRequestObject.readyState == 4 && 
          XMLHttpRequestObject.status == 200) {
        div.innerHTML = XMLHttpRequestObject.responseText;
        przyciskEl.disabled = false;
      }
    }
    XMLHttpRequestObject.send(null);
  }
}

var XMLHttpRequestObject = getXMLHttpRequestObject();
</script>




<div>
<input type="button" value="Kliknij tu" 
       onclick="pobierzDane();" id="przycisk1" />
</div>
<div id="warstwaDanych">

W drugim pliku nic nie dodawałem.

Nie wiem czy to wystarczy czy nie?Bo w takiej postaci nie działa.. brak zmiennych..

komentarz 25 września 2017 przez Chess Szeryf (76,710 p.)
Podałem ci całe rozwiązanie, nie wiem czego dalej oczekujesz. Podałem nazwy, pod jakimi masz zapisać skrypty, pod milk.php i milk2.php.

milk.php:

formularz + <script src="myjs.js"></script>

milk2.php:

skrypt php.
komentarz 25 września 2017 przez adrian588 Początkujący (470 p.)
No jakoś nie mogę tego rozkminić i nie działa to u mnie..

Nie wiem dlaczego.
komentarz 26 września 2017 przez adrian588 Początkujący (470 p.)
edycja 26 września 2017 przez adrian588
Witam.

Poradziłem sobie z tym w inny w sumie bardzo prosty sposób.

Formularz wysłałem do tego samego pliku a cały kod obliczeń wstawiłem funkcją include.

Czyli generalnie bez żadnych skryptów itp. --- jednak jak zauważyłem podczas testów nie może tak być bo po kliknięciu oblicz przeładowuje się cała strona i dane z formularza przyjmują wartości początkowe:/.. ehh masakra...

 

 

Wie ktoś jak zrobić aby dane wprowadzone do formularza pozostały nie zmienione przy przeładowaniu strony?
komentarz 26 września 2017 przez adrian588 Początkujący (470 p.)

Witam serdecznie.

Zrobiłem w ajaxie i zaczęło coś działać. To znaczy po kliknięciu buttona bez przeładowania pojawiają się wyniki. Mam jednak problem ze zmiennymi gdyż dalej ich nie zczytuje i pojawia się komunikat:

Notice: Undefined index: wysokosc in C:\xampp\htdocs\obliczenia\wynik.php on line 26

Notice: Undefined index: szerokosc in C:\xampp\htdocs\obliczenia\wynik.php on line 27

 

W formularzu mam tak to zdefiniowane:

<form = action="belkazginanie.php" method="post">

	<h2>Podaj dane do obliczeń:</h2>
		
		
<!-- ################# GEOMETRIA PRZEKROJU ################## -->
		<div id="geometriaprzekroju">
			GEOMETRIA PRZEKROJU <br/><br/> 
			 Szerokość belki <input type="text" name="szerokosc" value="25"cm  id="szerokosc"<br/>
			 Wysokość belki <input type="text" name="wysokosc" value="30" id="wysokosc"> cm <br/><br/>

<h2><center><input type="button" name="oblicz" value="OBLICZ !" onclick="runAjax()"></center></h2>

			

			</form>

 

 

A skrypt wygląda tak:

<script>
function runAjax()
{
  var numer =  document.getElementById("wysokosc").value;
  var numer =  document.getElementById("szerokosc").value; // pobieramy wartość inputa
  var xmlhttp = new XMLHttpRequest(); // tworzymy obiekt XMLHttpRequest

  // definiujemy funkcję callback dla zdarzenia onreadystatechange
  xmlhttp.onreadystatechange = function()
  {
    if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
    {
      // jeśli otrzymamy odpowiedź, to wpisujemy ją do DIV-a o id=response
      document.getElementById("response").innerHTML = xmlhttp.responseText;
    } 
  }; 

  // tworzymy żądanie i wysyłamy
  xmlhttp.open("POST", "wynik.php", true);
  xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  xmlhttp.send("wysokosc" + "szerokosc");
}
</script>

Gdzie robię błąd?

komentarz 26 września 2017 przez Chess Szeryf (76,710 p.)

Czytałeś ten tutorial, co dałem Ci link wyżej?

send('zmienna1=aaaa&zmienna2=bbbb');

W PHP możesz odebrać dane tak:

echo $_POST['zmienna1'].$_POST['zmienna2'];

Nadpisujesz drugą zmienną, nadaj jej inną nazwę, np. numer2.

U Ciebie byłoby to tak:

 xmlhttp.send("wysokosc="+numer1+"&szerokosc="+numer2);

 

komentarz 26 września 2017 przez adrian588 Początkujący (470 p.)
po dodaniu w send samego +numer1 - już wcale się nie ładuje nic..

Czytałem tutorial i od wczoraj próbuję coś zrobić ale mi nadzwyczajnie nie wychodzi.

Jak wspomniałem jestem początkującym i nie znam się za bardzo na tym...

poza tym jak zostawię jedną zmienną to ładuje się drugi php i nie pokazuje błędu iż zmienna nie została zdeklarowana natomiast jak później mam echo ... napisy napisy napisy $zmienna - to jej nie wyświetla... ?
komentarz 26 września 2017 przez Chess Szeryf (76,710 p.)
xmlhttp.send("wysokosc="+ document.getElementById("wysokosc").value +"&szerokosc="+ document.getElementById("szerokosc").value );

Podałem Tobie cały gotowy kod. Weź go skopiuj do siebie. Przerób tylko te send(), open() i tyle.

komentarz 26 września 2017 przez adrian588 Początkujący (470 p.)
Teraz działa!! SUPER !!

DZIĘKI!!

:))

A mam jeszcze pytanie:

jak posiadam różne formularze z różnymi polami to czy zawsze należy wszystko wklepywać ręcznie?

Każde pole?

Czy należy może coś dopisać w jakieś wskazane miejsce aby wszystko pobierało?
komentarz 26 września 2017 przez Chess Szeryf (76,710 p.)

Jeśli masz dwa formularze, a w nich te same name'y (takie same nazwy), to wydaje mi się, że trzeba byłoby użyć konstrukcji this, lecz jeśli masz różne name'y to chyba musiałbyś to wklepywać ręcznie. Chodzi o:

xhr.send("variable1=value1&variable2=value2");.

Gdy testujesz napisany przez siebie kod i gdy zobaczysz pustą stronę to znaczy, że najprawdopodobniej masz błąd można to szybko sprawdzić w konsoli. F12 lub ctrl+shift+I, zakładka console. I tam są wypisane błędy.

komentarz 26 września 2017 przez adrian588 Początkujący (470 p.)
jak wpisałem send który mi podałeś wszystko działa.

W formularzu mam jeszcze listy rozwijalne typu select.

Z nich w taki sam sposób mam dodać wybrane opcje?

Bo jak tak robie to się nic nie pojawia.

Tak jakby nie pobierało danej z pola select
komentarz 26 września 2017 przez adrian588 Początkujący (470 p.)

Mam jeszcze takie pytanie do poprzedniego obecnie mam taki send

xmlhttp.send("wysokosc="+ document.getElementById("wysokosc").value +"&szerokosc="+ document.getElementById("szerokosc").value + "srednicastrzemiona="+ document.getElementById("srednicastrzemiona").value );

gdzie srednicastrzemiona jest z listy rozwijalnej.

Otrzymuje zwrócone wartości z php:

To poniżej to wszystko z funkcji echo z php jako tekst ze zmiennymi:

na zielono poprawnie wstawia wartości zmiennych wysokosc i szerokosc natmiast zmienną srednicastrzemiona dokleja dalej zamiast wstawić ją na końcu gdzie jest na to miejsce. Jaki może być tego powód?

dodatkowo wyświetla błąd:

Notice: Undefined index: srednicastrzemiona in C:\xampp\htdocs\obliczenia\wynik.php on line 29

pomimo że wartość pobiera bo ją wpisuje tylko nie w tym miejscu co trzeba - na czerwono

USTALONO GEOMETRIĘ: 
Ustaliłeś wysokość belki na 30 cm, a szerokość na 15srednicastrzemiona=10 cm 
Pole powierzchni belki wynosi 450cm 2 co w przeliczeniu wynosi 0.045 m 2

USTALONO OBCIĄŻENIA: 
Obliczeniowy moment zginający wynosi: kNm

DANE MATERIAŁOWE STAL: 
Przyjąłeś średnicę prętów głównych Ø mm Średnica strzemione tutaj powinna być ta srednicastrzemiona! Ø mm 

 

komentarz 26 września 2017 przez Chess Szeryf (76,710 p.)
<select name="choose" id="choose">
	<option value="8">eight</option>
</select>
xhr.send("eight="+document.getElementById('choose').value);

 

komentarz 26 września 2017 przez adrian588 Początkujący (470 p.)

Mam takie pole select

<select name="srednicastrzemiona" id="srednicastrzemiona">
					<option value="6">6</option> 
					<option selected value="8">8</option>
		  			<option value="10">10</option>
		  			<option value="12">12</option> 
		  		</select>

A więc mój kod to:

xhr.send("6"+document.getElementById('srednicastrzemiona').value);

Po klejeniu tego nie działa też.. nie pobiera zmiennej

Notice: Undefined index: srednicastrzemiona in C:\xampp\htdocs\obliczenia\wynik.php on line 29

komentarz 26 września 2017 przez adrian588 Początkujący (470 p.)
Już wiem co zmaściłem!!

Przy wpisywaniu kolenych wyrażeń do send nie dałem znaku & !! a teraz już działa

Podobne pytania

0 głosów
2 odpowiedzi 195 wizyt
pytanie zadane 13 kwietnia 2021 w C i C++ przez grzecho123 Początkujący (450 p.)
0 głosów
2 odpowiedzi 493 wizyt
pytanie zadane 9 czerwca 2017 w C i C++ przez niezalogowany
0 głosów
1 odpowiedź 136 wizyt

92,615 zapytań

141,465 odpowiedzi

319,782 komentarzy

61,997 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...