Odpalenie php przez javascript z parametrem

0

Napisałem funkcję:

this.funkcja = function(){
      var data = this.text;
      $.post("/data.php",
          data,
          function() {
              alert("data saved");
      });
   }

Ale oczywiście po jej wykonaniu nic się nie dzieje:

<?php 
$message = $_POST['dane'];
echo "<script type='text/javascript'>alert('$message');</script>";
?>

Co skopałem?

Edit Poprawka tam jest $message = $_POST['data'];

0

ale na podstawie czego napisales ta funkcje i skad przyszlo ci do glowy ze w tej formie to bedzie dziala.

  1. owszem definiujesz fynkcje, ale jej nigdzie nie wywolujesz. samo zdefiniowanie funkcji jej nie wykonuje. czyli brak this.funkcja();
  2. zakladam, ze zmienna text jest zdefiniowana i uzueplniona
  3. data powinno byc w twoim przypadku obiektem kluczem i wartoscia, kluczem powinno byc data, a wartoscia zawartosc text. cos a'la var data = {data: this.text}; wtedy w php odbierzesz to tak jak piszesz przez $_POST["data"]
  4. callback w $.post przyjmuje jako parametr funkcji to co chcesz zwrocic, czyli zeby cos z serwera otrzymac to musi to wygladac tak: function(zwroconeDane) { wtedy pod zmienna zwroconeDane masz to co wyrzuciles sobie przez echo w PHP
  5. to co wyrzucasz przez echo to javascript w tagach, jak chcesz wykonac to co masz w PHPowskim echo to pozbadz sie tagow <script> i zostaw sam alert, a zamiast alert("data saved"); zrob eval na to co zwracasz czyli eval(zwroconeDane), ale uwazaj bo to nie ejst zbyt dobra praktyka
0

No dobra chyba chciałem za szybko wszystko opisać. Cały kod:

ng-controllers.js:

angular.module('Textarea', [])
 .controller('TextAreaCtrl', function(){

   this.isButtonVisible = function(){
      return this.text;
   }

   this.send = function(){
      var data = {data: this.text}; // poprzednio jak wyżej
      $.post("/data.php",
          data,
          function() {
              alert("data saved");
      });
   }

});

index:

 
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl" ng-app='Textarea'>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>Angular - Textarea</title>

	<link rel='stylesheet' type='text/css' href='style.css' />

	<script type='text/javascript' src='jquery.min.js'></script>

	<script type='text/javascript' src='angular.min.js'></script>

	<script type='text/javascript' src='ng-controllers.js'></script>	

</head>
<body style='padding:0px; margin:0px;' onload=''>
	<div class='Cont' ng-controller='TextAreaCtrl as ctrl'>
		<div class='TextAreaCont'>
			<textarea ng-model='ctrl.text' placeholder='Write something...'></textarea>
		</div>
		<div class='ButtonCont' ng-show='ctrl.isButtonVisible()'>
			<button ng-click='ctrl.send()'>Send</button>
		</div>
	</div>
</body>

</html>

php który ma wykonać kod z parametrem przez POST

<?php 
echo $_POST["data"];
?>

Nie wiem czy dobrze zrozumiałem. Ostatecznie chciałbym, aby data.php tworzył plik z przekazaną wartością, ale do tego wolę dojść sam. Na razie chce wiedzieć co źle robię. Programowałem już w php, ale było to dawno temu

0

nie zrobilem punktu 4. z mojego poprzedniego posta, zeby wyswietlic dane zwrocne musisz ustawic praamter dla callback.

twoj kod + dodany parametr tutaj: http://jsbin.com/sohuwaxali/1/edit?html,js,output

0

No cóż na stronie, którą podałeś wszystko działa, ale na serwerze nie

1 użytkowników online, w tym zalogowanych: 0, gości: 1