Tartalom bővítése javascript + php kóddal
2008-01-09T13:41:45+01:00
2008-01-09T16:07:01+01:00
2022-07-28T17:20:27+02:00
daddZ
Hello
Ritkán fordulok segítségért, ált. megoldom magam, de most már télleg tökre unom, h csak bénázom és nem jutok egyről a kettőre. Korábban írtam már kódot, ami szépen beszúrogat egy-egy újabb select sort a html oldalba javasript segítségével. Ugyanazt, ugyanúgy csinálom, de itt vmiért most mégsem működik(abban mondjuk nem volt php kód beszúrás, de sztem nem ezen múlik). Én nem látom, hol a hiba. Esetleg több szem többet...

/**************************************************/
<?php

function products()
{
$con = mysql_connect("localhost","root","");
mysql_select_db("clothes", $con);
$query = 'select product_id, product_name, product_in_stock FROM clo_vm_product order by product_name';
$product = mysql_query($query);
while ($sor = mysql_fetch_array($product))
{
$pname = $sor['product_name'];
if ($sor['product_in_stock'] > 0) echo "<option>".$pname."</option>";
}
}
?>

<html>
<head>
<script>

var sz = 1;

var pname=new array();
var pcount=new array();

function store()//eltárolja az eddig kitöltött értékeket
{
for(var i = 0; i < sz; i++)
{
var x = document.getElementById("pname"+(i+1));
pname = x.options[x.selectedIndex].text;
pcount
= document.getElementById("pcount"+(i+1)).value;
}
}

function giveback()//a sor beszúrása után visszaadja ez előző kitöltött sorok értékeit is
{
for(var i = 0; i < sz-1; i++)
{
var x=document.getElementById("pname"+(i+1));
x.options[x.selectedIndex].text=pname;
document.getElementById("pcount"+(i+1)).value = pcount
;
}
}

function bovit() //és itt dolgozik elvileg
{
store();
sz++;
var form = document.getElementById("selling");
var sor = "";
sor += "<select id=\"pname"+sz+"\" name=\"pname"+sz+"\" class=\"otipus\"> ";
sor += <?php products(); ?>;
sor += "</select>";
sor += "<input id=\"pcount"+sz+"\" name=\"pcount"+sz+"\" class=\"otipus\" type=\"text\"><br />";
form.innerHTML += sor;
giveback();
}

</script>

</head>
<body>

<form id="selling" action="kuld.php" method="post">
<input type="button" id="buttons" onclick="bovit()" value="További termékek">
<input type="submit" id="buttons" value="Küldés">
<input type="button" id="buttons" value="Mégsem" onclick="history.go()"><br />
<select id="pname1" name="pname1" class="tipus">
<?php products(); ?>;
</select>
<input id="pcount1" name="pcount1" class="tipus" type="text"><br />
</form>
</body>
</html>
Mutasd a teljes hozzászólást!
A javascript nagyon érzékeny a kis és nagybetűkre:

javítsd ezt:
var pname=new Array();
var pcount=new Array();
Mutasd a teljes hozzászólást!

  • Forraskod gomb!

    Meg ha a temanal megjelolted volna a js-t meg php-t is, akkor tobb embert erdekelt volna a topic!
    Mutasd a teljes hozzászólást!
  • Ja, igazad lehet a témamegjelölést és beszúrási segédletet illetőleg, ebből is láccik, h ritkán kérek segítséget. Ha így tettem volna, vszeg nem maradnak le kódból a pname és pcount tömbök [] indexei értékátadáskor.
    Mutasd a teljes hozzászólást!
  • [torolve, latom szerkesztettel]
    Mutasd a teljes hozzászólást!
  • Igen, bocs, csak közben észrevettem, h néhol lemaradt egy-egy karakter és javítottam, h nehogy azokra érkezzen megoldás, így nem vetődik senki sem árnyékra feleslegesen. Ahogy pl.
    sor += <?php products(); ?>;
    ez is így néz ki valójában:
    sor += "<?php products(); ?>";
    Mutasd a teljes hozzászólást!
  • Ezeket a sorokat modosítst, hogy tömbként kezeld a változót:

    pname = x.options[x.selectedIndex].text;
    pcount
    = document.getElementById("pcount"+(i+1)).value;

    ...

    x.options[x.selectedIndex].text=pname;
    document.getElementById("pcount"+(i+1)).value = pcount
    ;
    Mutasd a teljes hozzászólást!
  • nem kodként illesztettem, most lesz a jó:

    pname[i] = x.options[x.selectedIndex].text; pcount[i] = document.getElementById("pcount"+(i+1)).value; .... x.options[x.selectedIndex].text=pname[i]; document.getElementById("pcount"+(i+1)).value = pcount[i];
    Mutasd a teljes hozzászólást!
  • Köszönöm, de épp ezért írtam fentebb, h sajna bénaságomból kifolyólag beszúráskor lemaradt nekem is a tömb index(nem forrásként szúrtam be), de a kódban megvan, szal nem ez a baja.
    A kódom ua. mint amit te írtál.
    Mutasd a teljes hozzászólást!
  • be kéne szúrnod a te pontos kódodat, mert nálam igy müködik.. te milyen böngésző alól nézed?
    Mutasd a teljes hozzászólást!
  • Remélem így látszani fog minden
    <?php function products() { $con = mysql_connect("localhost","root",""); mysql_select_db("clothes", $con); $query = 'select product_id, product_name, product_in_stock FROM clo_vm_product order by product_name'; $product = mysql_query($query); while ($sor = mysql_fetch_array($product)) { $pname = $sor['product_name']; if ($sor['product_in_stock'] > 1) echo "<option>".$pname."</option>"; } ?> <html> <head> <script> var sz = 1; var pname=new array(); var pcount=new array(); function store() { for(var i = 0; i < sz; i++) { var x = document.getElementById("pname"+(i+1)); pname[i] = x.options[x.selectedIndex].text; pcount[i] = document.getElementById("pcount"+(i+1)).value; } } function giveback() { for(var i = 0; i < sz-1; i++) { var x=document.getElementById("pname"+(i+1)); x.options[x.selectedIndex].text=pname[i]; document.getElementById("pcount"+(i+1)).value = pcount[i]; } } function bovit() { store(); sz++; var form = document.getElementById("selling"); var sor = ""; sor += "<select id=\"pname"+sz+"\" name=\"pname"+sz+"\" class=\"tipus\"> "; sor += "<?php products(); ?>"; sor += "</select>"; sor += "<input id=\"pcount"+sz+"\" name=\"pcount"+sz+"\" class=\"tipus\" type=\"text\"><br />"; form.innerHTML += sor; giveback(); } </script> </head> <body> <form id="selling" action="kuld.php" method="post"> <input type="button" id="buttons" onclick="bovit()" value="További termékek"> <input type="submit" id="buttons" value="Küldés"> <input type="button" id="buttons" value="Mégsem" onclick="history.go()"><br /> <select id="pname1" name="pname1" class="tipus"> <?php products(); ?>; </select> <input id="pcount1" name="pcount1" class="tipus" type="text"><br /> </form> </body> </html>
    Mutasd a teljes hozzászólást!
  • A javascript nagyon érzékeny a kis és nagybetűkre:

    javítsd ezt:
    var pname=new Array();
    var pcount=new Array();
    Mutasd a teljes hozzászólást!
  • köszönöm!
    én hülye figyelmetlen a másikban, ami ment és amiből puskáztam naggyal van írva. : ) Mért nem úgy tettem? Na mind1, sosem jöttem volna rá nélküled.
    Mutasd a teljes hozzászólást!
abcd