Pereiti prie turinio

Mistika paleidžiant PHP su JavaScriptu


Rekomenduojami pranešimai

Sveiki, bandau tokį fokusą, ir jau apsidžiaugęs, kad pavyko, įvyko kažkas mistiško ir, žinoma, neveikia :)

 

Bandau padaryti taip, kad PHP užkrautų iš duombazės grupių sąrašą (option sąrašą).

Šiame sąraše ties onClick suveikia JavaScriptas, kuris paleidžia PHP funkcija su string parametru.

Ta funkcija, turi grąžinti listą žmonių vardų.

 

PHP funcijos:

function GetGroupList()
{
	echo '<select>';
	echo '<option value=""></option>';

	$qry="SELECT * FROM human_group";
	$result=mysql_query($qry);
	if($result)
	{
		while($row = mysql_fetch_array($result))
		{
			echo '<option onclick="GetStudentList('.$row["ID"].');">'.$row["NAME"].'</option>';
		}
	}
	echo '</select>';
}
function GetStudents($stringas)
{
	echo $stringas;
	$stringas = $stringas." ";
	echo $stringas;
	$id = (int) $stringas;
	echo $id;
	$qry="SELECT * FROM human WHERE GROUP_ID = ".$stringas;
	echo $qry;
	$result=mysql_query($qry);
	echo "Rezultatu: ". mysql_num_rows($result)." ID: ".$id." STRING: ".$stringas;
	if($result)
	{
		while($row = mysql_fetch_array($result))
		{
			echo $row["NAME"];
		}
	}
	else "Nepavyko";
}

 

Fragmentas iš HTML:

Pasirinkite grupę:
<p>
<?php GetGroupList(); ?>
</p>

<script type="text/javascript">
function GetStudentList(id){
document.getElementById("php_code").innerHTML="<?php GetStudents('"+id+"'); ?>";
}
</script>

<span id="php_code"> </span>

 

Kintamojo $stringas reikšmė funkcijoje ateina gera (string tipo, išvedus jo reikšmę rodoma tinkama), tadčia, selectas jo neįvykdo dėl kažkokios priežasties. Taip pat nepaverčia jo į int'ą. Nežinau net ką ir dar begalvoti. Atrodo išbandžiau visus variantus, kuriuos sugalvojau :) Duombazė netuščia. Įrašius rankom tą stringą, kuris ateina į funkciją, selektinama gerai.

 

Gal yra minčių, protingieji kurmiai? :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Padaryk console.log('<?php GetStudents('"+id+"'); ?>'); ir paziurek kas pareina is php. Ir beje, jei pareina array - naudok json_encode

P.S.

Maisiti php su js yra blogai - isvis maisiti koda yra blogai.

Redagavo apieviska
Nuoroda į pranešimą
Dalintis kituose puslapiuose

document.getElementById("php_code").innerHTML="<?php GetStudents('"+id+"'); ?>";

 

cia va yra nesamone

 

tu server side perduodi funkcijai GetStudents parametra "+id+" , ir ta funkcija tikriausia atspausdina nieko.

 

tai client side turi toki dalyka (ziurek source koda per narsykle)

 

<script type="text/javascript">

function GetStudentList(id){

document.getElementById("php_code").innerHTML="nieko"; /// o gal isvis tuscia stringa = ""

}

</script>

 

esme kad client side, arba browserije, php funkcijos iskviesti taip kaip server side negali, nebent naudoti ajax. T.y. kreiptis su javascriptu i serveri perduodant ta id, ir iskvieciant php funkcija GetStudents($_POST['id']) , grazintus duomenys kazkokiu formatu , ar json ar tik stringu apdoroji ir pateiki taip kaip nori.

 

------------------------

 

O dabar kaip tu darai, tai vienintele iseitis, priskirti kokiam kintamajum, visus tavo db esancius studentus su ju id ir vardu json formatu, tarkim

 

<script type="text/javascript">

function GetStudentList(id){

var json_groups_studs = <?php GetGroupsStudents(); ?> // grazina visus studentus json formatu su grupiu id ir studentu vardais juose (butu multidimensinis masyvas)

 

// toliau mauni i cikla visas grupes, kad praeitu per visas ir jei sios js funkcijos id sutempa su json id, isvedi to id studentu sarasa kazkokiu budu

</script>

 

bet taip daryt totaliai slykstu, naudok ajax

Redagavo kaunomanas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Padaryk console.log('<?php GetStudents('"+id+"'); ?>'); ir paziurek kas pareina is php. Ir beje, jei pareina array - naudok json_encode

P.S.

Maisiti php su js yra blogai - isvis maisiti koda yra blogai.

 

Ačiū už patarimą, išbandysiu :)

 

document.getElementById("php_code").innerHTML="<?php GetStudents('"+id+"'); ?>";

 

cia va yra nesamone

 

tu server side perduodi funkcijai GetStudents parametra "+id+" , ir ta funkcija tikriausia atspausdina nieko.

 

tai client side turi toki dalyka (ziurek source koda per narsykle)

 

<script type="text/javascript">

function GetStudentList(id){

document.getElementById("php_code").innerHTML="nieko"; /// o gal isvis tuscia stringa = ""

}

</script>

 

esme kad client side, arba browserije, php funkcijos iskviesti taip kaip server side negali, nebent naudoti ajax. T.y. kreiptis su javascriptu i serveri perduodant ta id, ir iskvieciant php funkcija GetStudents($_POST['id']) , grazintus duomenys kazkokiu formatu , ar json ar tik stringu apdoroji ir pateiki taip kaip nori.

 

------------------------

 

O dabar kaip tu darai, tai vienintele iseitis, priskirti kokiam kintamajum, visus tavo db esancius studentus su ju id ir vardu json formatu, tarkim

 

<script type="text/javascript">

function GetStudentList(id){

var json_groups_studs = <?php GetGroupsStudents(); ?> // grazina visus studentus json formatu su grupiu id ir studentu vardais juose (butu multidimensinis masyvas)

 

// toliau mauni i cikla visas grupes, kad praeitu per visas ir jei sios js funkcijos id sutempa su json id, isvedi to id studentu sarasa kazkokiu budu

</script>

 

bet taip daryt totaliai slykstu, naudok ajax

 

Na gal ir būtų paskata ajax pradėt programuot :) bet jau reikia taip pabaigt. O Kintamasis ateina. I ta funkcija getStudents paduoda gerą stringą, jį galiu iškarto išvesti pirmoje eilutėje. Tačiau bandant antroje eilutėje įdėti į query, jis nusimuša kažkodėl.

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ą...