Pereiti prie turinio

$.post Javascript metodas


Rekomenduojami pranešimai

Sveiki,

 

bandau pasiųsti duomenis ištrinimui iš MySQL, tačiau pabandęs tuos siunčiamus duomenis atsispausdinti gaunu:

VISKAS VYKSTA LENTELĖJE, O NE FORMOJE

 

http://i.imgur.com/AOnt1TO.png

 

Bandžiau ir su .value ir su documentGetById tačiau visą laiką tas pats.

 

JavaScript:

function Delete(e) {
       if (confirm("Ar tikrai norite tęsti?")) {

		$.post("inc/delete.php", 
		{
			'Data' : $("#Data").val(),
			'Rungtynės' : $("#Rungtynės").val()

		},
		function(data, status){
       alert("Data: " + Data + "\nRungtynės: " + Rungtynės);
   }
		);
           grid.removeRow(e.data.id);
       }
   }

 

HTML:

 

<tr>
               <td><label for="Data">Data:</label></td>
               <td><input type="text" id="Data"></td>
           </tr>
		<tr>
               <td><label for="Rungtynės">Rungtynės:</label></td>
               <td><input type="text" id="Rungtynės"></td>
           </tr>

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kaip matau, informacija į post turėtų normaliai išsisiųsti, bet kodėl tu tokį alert'ą kvailą darai, tai sunku pasakyti.

Kaip ir siunčiant, jei nori parodyti alert'e duomenis, reiktų daryti $("#Data").val() ir $("#Rungtynės").val() vietoj kažkokių kintamųjų, kurių tu net nesi aprašęs (o naršyklė tau grąžina HTML objektus pagal Id).

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Neišeina importuoti Gijgo plugin'o, kitaip neveiks.

Su $.post išėjo atnaujinti eilutes arba jas pridėti, tačiau ištrinti vis dėlto neleidžia. Gal aš čia kokios nematau klaidos? Console klaidų nemeta

 

$(document).ready(function () {
   var data, grid, dialog;
   data = <?php include 'inc/data.php' ?>
   dialog = $("#dialog").dialog({
       title: "Add/Edit Record",
       autoOpen: false,
       resizable: false,
       modal: true,
       buttons: {
           "Save": Save,
           "Cancel": function () { $(this).dialog("close"); }
       }
   });
   function Edit(e) {
       $("#id").val(e.data.id);
       $("#Šaka").val(e.data.record.Šaka);
       $("#Data").val(e.data.record.Data);
	$("#Rungtynės").val(e.data.record.Rungtynės);
	$("#Prognozė").val(e.data.record.Prognozė);
	$("#Koef").val(e.data.record.Koef);
	$("#Rezultatas").val(e.data.record.Rezultatas);
	$("#Baigtis").val(e.data.record.Baigtis);
       $("#dialog").dialog("open");
   }
   function Delete(e) {
       if (confirm("Ar tikrai norite tęsti?")) {
		$.post("inc/delete.php", 
		{
			"id": parseInt($("#id").val())		
		});
           grid.removeRow(e.data.id);
       }
   }
   function Save() {
       if ($("#id").val()) {
           var id = parseInt($("#id").val());
           grid.updateRow(id, { "id": id, 
							 "Šaka": $("#Šaka").val(),
							 "Data": $("#Data").val(), 
							 "Rungtynės": $("#Rungtynės").val(),
							 "Prognozė": $("#Prognozė").val(),
							 "Koef": $("#Koef").val(),
							 "Rezultatas": $("#Rezultatas").val(),
							 "Baigtis": $("#Baigtis").val()
							 });

		$.post("inc/update.php", 
		{
			"id": $("#id").val(),
			"Šaka": $("#Šaka").val(),
			"Data": $("#Data").val(), 
			"Rungtynės": $("#Rungtynės").val(),
			"Prognozė": $("#Prognozė").val(),
			"Koef": $("#Koef").val(),
			"Rezultatas": $("#Rezultatas").val(),
			"Baigtis": $("#Baigtis").val()
		})
       } else {
           grid.addRow({ "id": grid.count() + 1,
					  "Šaka": $("#Šaka").val(),
					  "Data": $("#Data").val(), 
					  "Rungtynės": $("#Rungtynės").val(),
					  "Prognozė": $("#Prognozė").val(),
					  "Koef": $("#Koef").val(),
					  "Rezultatas": $("#Rezultatas").val(),
					  "Baigtis": $("#Baigtis").val()
					  });

		$.post("inc/input.php", 
		{
			"Šaka": $("#Šaka").val(),
			"Data": $("#Data").val(), 
			"Rungtynės": $("#Rungtynės").val(),
			"Prognozė": $("#Prognozė").val(),
			"Koef": $("#Koef").val(),
			"Rezultatas": $("#Rezultatas").val(),
			"Baigtis": $("#Baigtis").val()
		});
       }
       $(this).dialog("close");
   }
   grid = $("#grid").grid({
       dataSource: data,
	notFoundText: "Įrašų nėra",
       columns: [
           { field: "id", title: "id" },
           { field: "Šaka", title: "Šaka" },
           { field: "Data", title: "Data" },
		{ field: "Rungtynės", title: "Rungtynės" },
		{ field: "Prognozė", title: "Prognozė" },
		{ field: "Koef", title: "Koef" },
		{ field: "Rezultatas", title: "Rezultatas" },
		{ field: "Baigtis", title: "Baigtis" },
           { title: "", width: 20, type: "icon", icon: "ui-icon-pencil", tooltip: "Edit", events: { "click": Edit } },
           { title: "", width: 20, type: "icon", icon: "ui-icon-close", tooltip: "Delete", events: { "click": Delete } }
       ]
   });
   $("#btnAdd").on("click", function () {
       $("#Šaka").val("");
       $("#Data").val("");
       $("#Rungtynės").val("");
	$("#Prognozė").val("");
	$("#Koef").val("");
	$("#Rezultatas").val("");
	$("#Baigtis").val("");
       $("#dialog").dialog("open");
   });
});

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Manau klaida "inc/delete.php", nes post kaip ir veikia. Beje, jei parasysi:

$.post("inc/delete.php", {'Data' : $("#Data").val(),

'Rungtynės' : $("#Rungtynės").val()},function(data, status){

alert(data); // idek Firebug breckpoint

}

);

Tada vykdydamas pamatysi koki atsakyma grazino post, gal pamatysi sql pranesima, paprastai jei ivelta klaida, parodo. data grazina delete.php atsaka, aisku, jei toki naudoji.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Brr, su lietuviškomis raidėmis ID ir kintamieji

Žinau, žinau taip buvo nuo seniau sukurta ir visi skriptai parašyti su lietuviškom raidėm, tai dabar perdarynėti būtų daug darbo

 

Manau klaida "inc/delete.php", nes post kaip ir veikia. Beje, jei parasysi:

$.post("inc/delete.php", {'Data' : $("#Data").val(),

'Rungtynės' : $("#Rungtynės").val()},function(data, status){

alert(data); // idek Firebug breckpoint

}

);

Tada vykdydamas pamatysi koki atsakyma grazino post, gal pamatysi sql pranesima, paprastai jei ivelta klaida, parodo. data grazina delete.php atsaka, aisku, jei toki naudoji.

Aš atsakymo neiškviečiu delete.php. Ar delete.php turėtų pagal nutylėjimą grąžinti?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Čia išvis nesamonę parašęs, nes tokių kintamųjų, kaip Data ir Rungtynės toje parodytoje funkcijoje išvis nėra. Spėju tokių nėra ir visame kode:

 

alert("Data: " + Data + "\nRungtynės: " + Rungtynės);

 

Aš tau paaiškinsiu kitaip:

$.post("inc/delete.php", {
   //Čia tikrai nėra js kintamieji ir jų negali naudoti kaip kintamųjų toje pačioje funkcijoje, nes čia tiesiog url query kintamieji kitaip sakant, kad tavo siunčiama nuoroda gautūsi inc/delete.php?Data=kazkas&Rungtynės='kazkas'
   'Data' : $("#Data").val(),
   'Rungtynės' : $("#Rungtynės").val()
},
function(data, status){
   alert("Data: " + Data + "\nRungtynės: " + Rungtynės);
});

 

Turėtų būti bent jau kažkas tokio:

var Data = $("#Data").val();
var Rungtynės = $("#Rungtynės").val();

$.post("inc/delete.php", {
   'Data' : Data,
   'Rungtynės' : Rungtynės
},
function(data, status){
   alert("Data: " + Data + "\nRungtynės: " + Rungtynės);
});

 

O kas liečia php, tai galima juk per naršyklę(firebug ar inspect element) pasitikrinti koks response pareina. Ką php faile spausdinsi, tą ir rodys čia: http://prntscr.com/9uw5qt

Jeigu nieko nespausdina tavo delete.php, tai susidėk kažkokius breakpoint'us(spausdinti kažka) norimose vietose ir pamatysi ar reaguoja aplamai į tai.

Buna dažna bėda pas pradedančius, kad siunčia $.post, o php faile kintamuosius pasima su $_GET, kas negerai. Jeigu siunti post, tai ir pasimi su $_POST ir t.t.

Gali būti ir pati nuoroda neveikianti, bet geriausia aišku pasitikrinti response ir bus aišku kame problemos.

 

Ir job..tararai, trink tu tuos lietuviškus kringelius ! :angry:

Redagavo FaceToFace
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Čia išvis nesamonę parašęs, nes tokių kintamųjų, kaip Data ir Rungtynės toje parodytoje funkcijoje išvis nėra. Spėju tokių nėra ir visame kode:

 

alert("Data: " + Data + "\nRungtynės: " + Rungtynės);

 

Aš tau paaiškinsiu kitaip:

$.post("inc/delete.php", {
   //Čia tikrai nėra js kintamieji ir jų negali naudoti kaip kintamųjų toje pačioje funkcijoje, nes čia tiesiog url query kintamieji kitaip sakant, kad tavo siunčiama nuoroda gautūsi inc/delete.php?Data=kazkas&Rungtynės='kazkas'
   'Data' : $("#Data").val(),
   'Rungtynės' : $("#Rungtynės").val()
},
function(data, status){
   alert("Data: " + Data + "\nRungtynės: " + Rungtynės);
});

 

Turėtų būti bent jau kažkas tokio:

var Data = $("#Data").val();
var Rungtynės = $("#Rungtynės").val();

$.post("inc/delete.php", {
   'Data' : Data,
   'Rungtynės' : Rungtynės
},
function(data, status){
   alert("Data: " + Data + "\nRungtynės: " + Rungtynės);
});

 

O kas liečia php, tai galima juk per naršyklę(firebug ar inspect element) pasitikrinti koks response pareina. Ką php faile spausdinsi, tą ir rodys čia: http://prntscr.com/9uw5qt

Jeigu nieko nespausdina tavo delete.php, tai susidėk kažkokius breakpoint'us(spausdinti kažka) norimose vietose ir pamatysi ar reaguoja aplamai į tai.

Buna dažna bėda pas pradedančius, kad siunčia $.post, o php faile kintamuosius pasima su $_GET, kas negerai. Jeigu siunti post, tai ir pasimi su $_POST ir t.t.

Gali būti ir pati nuoroda neveikianti, bet geriausia aišku pasitikrinti response ir bus aišku kame problemos.

 

Ir job..tararai, trink tu tuos lietuviškus kringelius ! :angry:

 

Va mano detele.php. Šitas kodas veikė, kai su PHP dariau POST'ą. Čia, kaip matai, delete.php pasidariau, kad trintu pagal id. Dabar admin-continent Delete f-joje pasidaręs taip:

 

function Delete(e) {
       if (confirm("Ar tikrai norite tęsti?")) {
		$.post("inc/delete.php", 
		{
			"id": parseInt($("#id").val())		
		});
           grid.removeRow(e.data.id);
       }
   }

Ištrint, tai galėčiau ištrinti tuos lietuviškus kringelius, bet man reikėtų keisti MySQL lentelės column'ų pavadinimus tarkim į angliškus, tai man spausdintų lentelė su angliškais column'ais.

<?php
$db_host = 'localhost';
$db_user = 'root';
$db_pwd = '';
$database = 'betlt';
$table = 'istorija';
$con = mysqli_connect($db_host, $db_user, $db_pwd);

if (!mysqli_select_db($con, $database))
	die("Duombazės pasirinkimas iš MySQL serverio neįvyko");

if (!$con)
{
	die('Neimanoma prisijungti prie MySQL: ' . mysqli_error($con));
}

mysqli_query($con, "SET NAMES utf8");

$nr = $_POST['id'];

$query = "DELETE FROM $table WHERE id = '"$nr"'";

if (!mysqli_query($con, $query))
{
	die('Klaida: ' . mysqli_error($con));
}

header("Location: ../admin.php");
mysqli_close($con);
?>

Redagavo Mantonijo
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tavo delete.php kodas tikrai netinkamas ajax'ui vien tik dėl daromo redirect'o + yra ir sintaksės klaidų DELETE užklausoje.

 

Dar vienas dalykas, kaip darai redirect'ą, tai po jo negali eiti joks kitas kodas. Tavo atveju turėtų būti kažkas tokio:

 

mysqli_close($con);
header("Location: ../admin.php"); exit;   

 

...bet kaip ir sakau, čia ajaxui šitas variantas netinka.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...