Ypologismos name kai value enos hidden form object

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
wabbit
Δημοσιεύσεις: 52
Εγγραφή: 24 Αύγ 2006 22:55

Ypologismos name kai value enos hidden form object

Δημοσίευση από wabbit » 25 Αύγ 2006 00:11

Javascript code:

Κώδικας: Επιλογή όλων

function Checkfn(objVar)
{
	
 var ele=document.getElementById('search2');
 var ele1=document.getElementById('TextBox1');

		if(objVar.value==02)
		{
			ele.disabled=false;
			
		}
		else
		{
			ele.disabled=true;
		}
		if(objVar.value==01)
		{
			ele1.disabled=true;
		}
		else
		{
			ele1.disabled=false;
		}
		
		
   if(objVar.value==01)	//all
   {
		document.getElementById('btnGo').focus();
		//document.getElementById('Contentcontainer1__ctl0_TextBox1').focus();
   }
   else if(objVar.value==02)	//description
   {
       
        document.getElementById('search2').focus();
       
   }
   else	//partnumber vendor part number
   {
		document.getElementById('TextBox1').focus();
   }
   if(objVar.value!=01 && objVar.value!=02 && objVar.value!=03)
   {
   ele1.disabled=true;
   }
}


function focusto()
{
   document.getElementById('TextBox1').focus();
   //document.forms[0].TextBox1.focus();
}
HTML Code:

Κώδικας: Επιλογή όλων

<form name="erevna" method="get" action="<?php echo $_SERVER&#91;'PHP_SELF'&#93;;?>">
<input name="act" type="hidden" value="search">
  <table cellspacing="0" cellpadding="0" width="100%" border="0">
    <tbody>
      <tr>
        <td nowrap="nowrap" align="center" width="108"><a href="<?php echo $site_name; ?>"><strong>Home</strong></a></td>
        <td nowrap="nowrap" width="108">&nbsp;&nbsp;Product Search</td>
        <td align="left" width="138"><select id="search1" style="WIDTH&#58; 127px" onchange="Checkfn&#40;this&#41;" name="search1">
            <option value="" selected="selected"></option>
            <option value="01">All</option>
            <option value="02">Description</option>
            <option value="03">Part Number</option>
        </select>
        </td>
        <td align="right" width="169"><select id="search2" style="WIDTH&#58; 162px" disabled="disabled" onchange="focusto&#40;&#41;">
            <option value="11" selected="selected">Find all the words</option>
            <option value="12">Find any of these words</option>
            <option value="13">Find the exact match</option>
        </select>
        </td>
        <td nowrap="nowrap" align="right" width="77">Search For</td>
        <td width="126"><input id="TextBox1" name="desc" /></td>
        <td width="24"><input id="btnGo" type="submit" class="sendButton" /></td>
        <td width="160"></td>
        <td nowrap="nowrap" align="right" width="96">&nbsp; </td>
      </tr>
    </tbody>
  </table>
  </form>
Afto pou thelw, einai na ftiaksw ena input type="hidden" pou na trexei javascript kai na kanei calculate to name kai to value
gia paradeigma:
<input id="searchtype" name="findname(this)" type="hidden" value="findvalue(this)">

To findname() tha trexei ena javascript me ta parakatw conditions
1) if search1 == 02 tote to name tou hidden input tha einai "desc" kai to value tha to pernei apo to "Textbox1" (isos na xreiastei deftero javascript pou tha kanei findvalue() gia afto ta evala kai ta 2
2) if search1 == 03 tote to name tou hidden input tha einai "item" kai to value pali tha ginetai calculated apo to "Textbox1"
3) se periptwsh pou den einai oute 02 oute 03, tote thelw na ginetai disable afto to input id="searchtype" kai na mhn lamvanetai katholou sto form method"get"

Tha to ektimousa poly an kapoios mporouse na mou vrei mia lysh.

Efxaristo,
Wabbit

wabbit
Δημοσιεύσεις: 52
Εγγραφή: 24 Αύγ 2006 22:55

Ypologismos name kai value enos hidden form object

Δημοσίευση από wabbit » 25 Αύγ 2006 12:47

Τελικά κατάφερα να βρω λύση στο πρόβλημα μου με τον παρακάτω κώδικα:

Στην php έχω φτιάξει ένα array που μου βρήσκει το $location:

Κώδικας: Επιλογή όλων

// Search array
$getterms = array&#40;'cat' => "", 'minprice' => "",'maxprice' => "",'stock' =>""&#41;;
foreach &#40;$getterms as $key => $value&#41; &#123;
	if &#40;empty&#40;$_GET&#91;$key&#93;&#41;&#41;
		unset &#40;$getterms&#91;$key&#93;&#41;;
	else
		$getterms&#91;$key&#93; = $_GET&#91;$key&#93;;
&#125;
foreach &#40;$getterms as $key => $value&#41; &#123;
	$getstuff .= "&".$key."=".$value;
&#125;
$location = "index.php?act=search".$getstuff;
Σε javascript:

Κώδικας: Επιλογή όλων

function findURL&#40;objVar&#41;
&#123;
	var var2 = form1.TextBox1.value;
	if&#40;form1.search1.value==02&#41;
	&#123;
		window.location="<?php echo $location; ?>&desc="+var2;
	&#125;
	else if&#40;form1.search1.value==03&#41;
	&#123;
		window.location="<?php echo $location; ?>&item="+var2;
	&#125;
	else
	&#123;
		window.location="<?php echo $location; ?>";
	&#125;
&#125;
Και το input button είναι το εξής:

Κώδικας: Επιλογή όλων

<input id="btnGo" type="submit" class="sendButton" onclick="javascript&#58;findURL&#40;&#41;;return false">
Αν κατάλαβε κάποιος το τι κάνω, διαβάζω συγεκριμένες τιμές απο το $_GET τις βάζω μέσα σε ένα array το οποίο μετά το κάνω σε $location url. Το javascript κάνει κάτι υπολογισμούς και ανάλογα με το $location της php, προσθέτει τα δικά του στο τέλος.

Όλα τα σχόλια είναι καλοδεχούμενα. Ίσως να μην είναι το καλύτερο Javascript και το καλύτερο php code που έχεται ξαναδεί, αλλα προς το παρόν δουλέβει σε μένα. Αν έχεται να προτείνεται κάποιες ιδέες για το αν κάνω κάτι σωστά ή λάθος θα ήθελα να τις ακούσω.

Ευχαριστώ,
Wabbit
Τελευταία επεξεργασία από το μέλος wabbit την 25 Αύγ 2006 13:51, έχει επεξεργασθεί 1 φορά συνολικά.

wabbit
Δημοσιεύσεις: 52
Εγγραφή: 24 Αύγ 2006 22:55

Ypologismos name kai value enos hidden form object

Δημοσίευση από wabbit » 25 Αύγ 2006 13:36

Δυστιχώς μόλις παρατήρησα ότι το παραπάνο javascript δουλέυει μόνο σε IE και δεν δουλέυει σε Firefox. Σε firefox αντί να τρέξει το javascript sto onclick, κάνει submit το form. Κάτι πέζει και δεν καταλαβένει σωστά το window.location. Έχει κανείς να προτίνει κάτι πως να γίνει πιο σωστά το javascript ?

wabbit
Δημοσιεύσεις: 52
Εγγραφή: 24 Αύγ 2006 22:55

Ypologismos name kai value enos hidden form object

Δημοσίευση από wabbit » 25 Αύγ 2006 15:06

Ουφφ !! Σας κούρασα με τον μονόλογο αλλά ευτιχώς βρήκα και για αυτό λύση. Το πρόβλημα ήτανε στην γραμμή:

Κώδικας: Επιλογή όλων

<td width="126"><input id="TextBox1" name="desc" /></td>
Ήθελε να αλλάξω το name σε TextBox1 γιατί το javascript στον Firefox έψαχνε για το name και όχι το id ενώ ο IE μάλλον απο ότι κατάλαβα τα κοιτούσε και τα δυο. Πάλι σε μπελάδες με έβαλε ο IE. Ήτανε λάθος μου και έπρεπε να το αντιμετωπίσει σαν λάθος και όχι να το προσπεράσει για να με μπερδέψει. Νόμιζα ότι το πρόβλημα ήτανε στο javascript.
Τέλος πάντων, εγώ είμαι ικανοποιημένος με το αποτέλεσμα. Ελπίζω να σας φανεί κάπου χρήσιμο. :)

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες