Πρόβλημα με Ajax και PHP

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

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

Απάντηση
dtravlos
Δημοσιεύσεις: 244
Εγγραφή: 29 Ιαν 2009 15:03
Τοποθεσία: Keratsini
Επικοινωνία:

Πρόβλημα με Ajax και PHP

Δημοσίευση από dtravlos » 25 Οκτ 2010 16:01

Καλησπέρα! Έχω ένα πρόβλημα. Έχω ένα select στο οποίο όταν γίνεται αλλαγή τραβάει με ajax το δεύτερο select που θέλω. Όταν φορτώνει το δεύτερο select δεν μπορώ να αλλάξω τα option, όποιο κι αν επιλέξω μου γυρίζει πάλι στην πρώτη επιλογή! Τι μπορεί να έχω κάνει λάθος; Παραθέτω και τον κώδικα:

Απ το κύριο αρχείο:

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

<script type="text/javascript">
        
        function getCat&#40;&#41; &#123;
            $&#40;this&#41;.change&#40;function&#40;&#41; &#123;
                var companyid = $&#40;'#company'&#41;.val&#40;&#41;;
                $.get&#40;"ajax/getCategory.php", &#123; company&#58; companyid&#125;,
                   function&#40;data&#41;&#123;
                     $&#40;'div#cats'&#41;.html&#40;data&#41;;
                   &#125;&#41;;
            &#125;&#41;
        &#125;
    </script>

<select name="company" id="company" onchange="getCat&#40;&#41;">
                        <?php
                            $companyResult= mysql_query&#40;"SELECT * FROM companies"&#41;;
                            while&#40;$companyRow = mysql_fetch_object&#40;$companyResult&#41;&#41; &#123;
                                $companyId = $companyRow->comp_id;
                                $companyTitle = $companyRow->comp_title;
                        ?>
                        <option value="<?php echo $companyId ?>"><?php echo $companyTitle ?></option>
                        <?php
                            &#125;
                        ?>
                    </select>
Και το αρχείο getCategory.php:

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

<?php

	$comp=$_GET&#91;"company"&#93;;
	
	$con = mysql_connect&#40;'localhost', 'root', ''&#41;;
	if &#40;!$con&#41;
	  &#123;
	  die&#40;'Could not connect&#58; ' . mysql_error&#40;&#41;&#41;;
	  &#125;
	
	mysql_select_db&#40;"estee", $con&#41;;

?>

<div style="float&#58; left;">
    <select name="category">

        <?php
            $parentResult = mysql_query&#40;"SELECT * FROM categories WHERE company = $comp AND parent_id = 0"&#41;;
            while&#40;$parentRow = mysql_fetch_object&#40;$parentResult&#41;&#41; &#123;
                $parentId = $parentRow->cat_id;
                $parentTitle = $parentRow->cat_title;
        ?>
        <option value="<?php echo $parentId ?>"><?php echo $parentTitle ?></option>
            <?php
                $parent2Result = mysql_query&#40;"SELECT * FROM categories WHERE company = $comp AND parent_id = $parentId"&#41;;
                while&#40;$parent2Row = mysql_fetch_object&#40;$parent2Result&#41;&#41; &#123;
                    $parent2Id = $parent2Row->cat_id;
                    $parent2Title = $parent2Row->cat_title;
            ?>
            <option value="<?php echo $parent2Id ?>">&nbsp;&nbsp;-&nbsp;<?php echo $parent2Title ?></option>
                <?php
                    $parent3Result = mysql_query&#40;"SELECT * FROM categories WHERE company = $comp AND parent_id = $parent2Id"&#41;;
                    while&#40;$parent3Row = mysql_fetch_object&#40;$parent3Result&#41;&#41; &#123;
                        $parent3Id = $parent3Row->cat_id;
                        $parent3Title = $parent3Row->cat_title;
                ?>
                <option value="<?php echo $parent3Id ?>">&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;<?php echo $parent3Title ?></option>
                <?php
                    &#125;
                &#125;
            &#125;
                ?>
    </select>
</div>

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Πρόβλημα με Ajax και PHP

Δημοσίευση από fafos » 25 Οκτ 2010 17:36

ti enoeis sou gurna panta to proto? auto yparxei ston kodika?:

<div id="cats"></div>
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

dtravlos
Δημοσιεύσεις: 244
Εγγραφή: 29 Ιαν 2009 15:03
Τοποθεσία: Keratsini
Επικοινωνία:

Πρόβλημα με Ajax και PHP

Δημοσίευση από dtravlos » 25 Οκτ 2010 19:58

Εννοώ μέσα στο select. Πατάω το πτυσσόμενο για να επιλέξω κατηγορία. Επιλέγω την 5η για παράδειγμα αλλά αυτό μου βγάζει selected το πρώτο option υπάρχει. Άσχετα δλδ ποιο option θα επιλέξω αυτό βγάζει selected το πρώτο στη σειρά. Τι μπορεί να φταίει;;; Αυτό το div μου το δείχνει κανονικά!

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Πρόβλημα με Ajax και PHP

Δημοσίευση από fafos » 25 Οκτ 2010 20:15

dtravlos έγραψε:Εννοώ μέσα στο select. Πατάω το πτυσσόμενο για να επιλέξω κατηγορία. Επιλέγω την 5η για παράδειγμα αλλά αυτό μου βγάζει selected το πρώτο option υπάρχει. Άσχετα δλδ ποιο option θα επιλέξω αυτό βγάζει selected το πρώτο στη σειρά. Τι μπορεί να φταίει;;; Αυτό το div μου το δείχνει κανονικά!
emena trexei kanonika xoris kanena provlhma... dose thn domh tou categories opos thn exeis sthn vash..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

dtravlos
Δημοσιεύσεις: 244
Εγγραφή: 29 Ιαν 2009 15:03
Τοποθεσία: Keratsini
Επικοινωνία:

Πρόβλημα με Ajax και PHP

Δημοσίευση από dtravlos » 26 Οκτ 2010 00:22

Καλησπέρα και πάλι!

categories
cat_id
cat_title
cat_desc
parent_id
company

Αυτός είναι ο πίνακας... Αν κατάλαβα καλά.. Αλλιώς εξήγησέ το όπως σε dummy :P

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Πρόβλημα με Ajax και PHP

Δημοσίευση από fafos » 26 Οκτ 2010 00:45

sto company elpizo na pernas to id kai oxi ton titlo.. right?
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

dtravlos
Δημοσιεύσεις: 244
Εγγραφή: 29 Ιαν 2009 15:03
Τοποθεσία: Keratsini
Επικοινωνία:

Πρόβλημα με Ajax και PHP

Δημοσίευση από dtravlos » 26 Οκτ 2010 01:36

Λόγω της ώρας μπορώ να πώ πως με κόλλησες για 10 δευτερόλεπτα... :P Εντάξει... είπαμε dummy.... όχι και super dummy!!! Υπάρχει περίπτωση να κάνει κανένα conflict με κανένα άλλο select?

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Πρόβλημα με Ajax και PHP

Δημοσίευση από fafos » 26 Οκτ 2010 02:12

dtravlos έγραψε:Λόγω της ώρας μπορώ να πώ πως με κόλλησες για 10 δευτερόλεπτα... :P Εντάξει... είπαμε dummy.... όχι και super dummy!!! Υπάρχει περίπτωση να κάνει κανένα conflict με κανένα άλλο select?
me thn idia akrivos vash opos thn dineis, mou doulepse kanonika xoris na allakso tipota..

trekse sketo to php me ena id apo kapoio company gia na deis an petaei kapoio lathos... px.

tosite.gr/getCategory.php?company=1
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

dtravlos
Δημοσιεύσεις: 244
Εγγραφή: 29 Ιαν 2009 15:03
Τοποθεσία: Keratsini
Επικοινωνία:

Πρόβλημα με Ajax και PHP

Δημοσίευση από dtravlos » 26 Οκτ 2010 09:44

Καλημέρα! Έτσι μου το τρέχει μια χαρά... Άρα το πρόβλημα είναι στο κύριο αρχείο;

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Πρόβλημα με Ajax και PHP

Δημοσίευση από fafos » 26 Οκτ 2010 16:46

dtravlos έγραψε:Καλημέρα! Έτσι μου το τρέχει μια χαρά... Άρα το πρόβλημα είναι στο κύριο αρχείο;
profanos... h steile olo ton kodika h des an sou petaei o browser kapoio javascript error..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

dtravlos
Δημοσιεύσεις: 244
Εγγραφή: 29 Ιαν 2009 15:03
Τοποθεσία: Keratsini
Επικοινωνία:

Πρόβλημα με Ajax και PHP

Δημοσίευση από dtravlos » 26 Οκτ 2010 16:55

Ο κώδικας του addproduct.php:

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

  <?php
                if&#40;isset&#40;$submitForm&#41;&#41; &#123;
                    $insertData = mysql_query&#40;"INSERT INTO products&#40;prod_code, prod_barcode, prod_desc, prod_size, prod_price, cat_id, company&#41; 
                                                VALUES &#40;'$prodCode', '$prodBarcode', '$prodDesc', '$prodSize', '$prodPrice', $category, $company&#41;"&#41;;
                    if&#40;$insertData&#41; &#123;
                        echo "Product successfully saved!";
                        echo "<meta http-equiv='refresh' content='2;URL=products.php' />";
                    &#125; else &#123;
                        echo "An error occured&#58; " . mysql_error&#40;&#41;;
                    &#125;
                &#125; else &#123;
            ?>
            
           <form name="addProduct" action="" method="post">
                <div id="companySelect">
                    <select name="company" id="company" onchange="getCat&#40;&#41;">
                        <?php
                            $companyResult= mysql_query&#40;"SELECT * FROM companies"&#41;;
                            while&#40;$companyRow = mysql_fetch_object&#40;$companyResult&#41;&#41; &#123;
                                $companyId = $companyRow->comp_id;
                                $companyTitle = $companyRow->comp_title;
                        ?>
                        <option value="<?php echo $companyId ?>"><?php echo $companyTitle ?></option>
                        <?php
                            &#125;
                        ?>
                    </select>
                </div>
                <div id="cats">
                    <select name="category" id="category">
                        <?php
                            $parentResult = mysql_query&#40;"SELECT * FROM categories WHERE company = 1 AND parent_id = 0"&#41;;
                            while&#40;$parentRow = mysql_fetch_object&#40;$parentResult&#41;&#41; &#123;
                                $parentId = $parentRow->cat_id;
                                $parentTitle = $parentRow->cat_title;
                        ?>
                        <option value="<?php echo $parentId ?>"><?php echo $parentTitle ?></option>
                            <?php
                                $parent2Result = mysql_query&#40;"SELECT * FROM categories WHERE company = 1 AND parent_id = $parentId"&#41;;
                                while&#40;$parent2Row = mysql_fetch_object&#40;$parent2Result&#41;&#41; &#123;
                                    $parent2Id = $parent2Row->cat_id;
                                    $parent2Title = $parent2Row->cat_title;
                            ?>
                            <option value="<?php echo $parent2Id ?>">&nbsp;&nbsp;-&nbsp;<?php echo $parent2Title ?></option>
                                <?php
                                    $parent3Result = mysql_query&#40;"SELECT * FROM categories WHERE company = 1 AND parent_id = $parent2Id"&#41;;
                                    while&#40;$parent3Row = mysql_fetch_object&#40;$parent3Result&#41;&#41; &#123;
                                        $parent3Id = $parent3Row->cat_id;
                                        $parent3Title = $parent3Row->cat_title;
                                ?>
                                <option value="<?php echo $parent3Id ?>">&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;<?php echo $parent3Title ?></option>
                                <?php
                                    &#125;
                                &#125;
                            &#125;
                                ?>
                    </select>
                </div>
                <div style="clear&#58; both;"></div><br />
                <label>Code&#58; </label>
                <input type="text" name="prodCode" size="10" /><br /><br />
                
                <label>Barcode&#58; </label>
                <input type="text" name="prodBarcode" size="12" /><br /><br />
                
                <label>Description&#58; </label><br />
                <textarea name="prodDesc" cols="30" rows="4"></textarea><br /><br />
                
                <label>Size&#58; </label>
                <input name="prodSize" type="text" size="10" /><br /><br />
                
                <label>Price&#58; </label>
                <input type="text" name="prodPrice" size="10" /><br /><br />
                
                <input type="submit" name="submitForm" value="Save" />
           </form>
           
           <?php
                &#125;
           ?>


και του getCategory.php:

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

<?php

/**
 * @author Dimitris Travlos
 * @copyright 2010
 */

	$co=$_GET&#91;"c"&#93;;
	
	$con = mysql_connect&#40;'localhost', '****', '****'&#41;;
	if &#40;!$con&#41;
	  &#123;
	  die&#40;'Could not connect&#58; ' . mysql_error&#40;&#41;&#41;;
	  &#125;
	
	mysql_select_db&#40;"dtravlos_estee", $con&#41;;

?>

<div style="float&#58; left;">
    <select name="category" id="category">

        <?php
            $parentResult = mysql_query&#40;"SELECT * FROM categories WHERE company = $co AND parent_id = 0"&#41;;
            while&#40;$parentRow = mysql_fetch_object&#40;$parentResult&#41;&#41; &#123;
                $parentId = $parentRow->cat_id;
                $parentTitle = $parentRow->cat_title;
        ?>
        <option value="<?php echo $parentId ?>"><?php echo $parentTitle ?></option>
            <?php
                $parent2Result = mysql_query&#40;"SELECT * FROM categories WHERE company = $co AND parent_id = $parentId"&#41;;
                while&#40;$parent2Row = mysql_fetch_object&#40;$parent2Result&#41;&#41; &#123;
                    $parent2Id = $parent2Row->cat_id;
                    $parent2Title = $parent2Row->cat_title;
            ?>
            <option value="<?php echo $parent2Id ?>">&nbsp;&nbsp;-&nbsp;<?php echo $parent2Title ?></option>
                <?php
                    $parent3Result = mysql_query&#40;"SELECT * FROM categories WHERE company = $co AND parent_id = $parent2Id"&#41;;
                    while&#40;$parent3Row = mysql_fetch_object&#40;$parent3Result&#41;&#41; &#123;
                        $parent3Id = $parent3Row->cat_id;
                        $parent3Title = $parent3Row->cat_title;
                ?>
                <option value="<?php echo $parent3Id ?>">&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;<?php echo $parent3Title ?></option>
                <?php
                    &#125;
                &#125;
            &#125;
                ?>
    </select>
</div>

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Πρόβλημα με Ajax και PHP

Δημοσίευση από fafos » 26 Οκτ 2010 17:20

to <div id="cats"> prepei na einai sketo mesa.. xoris ton php kodika pou exeis:

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

<div id="cats"></div>
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

dtravlos
Δημοσιεύσεις: 244
Εγγραφή: 29 Ιαν 2009 15:03
Τοποθεσία: Keratsini
Επικοινωνία:

Πρόβλημα με Ajax και PHP

Δημοσίευση από dtravlos » 26 Οκτ 2010 17:30

Τη βρήκα τη βλακεία! Αν είναι δυνατόν!! Άνοιξα το console στο firebug και μου έδειχνε πώς όταν άλλαζα category μου ξαναέκανε ajax request. Οπότε διέγραψα το function getCat() και το έγραψα έτσι:

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

$&#40;document&#41;.ready&#40;function&#40;&#41; &#123;
            $&#40;'#company'&#41;.change&#40;function&#40;&#41; &#123;
                var compa = $&#40;'#company'&#41;.val&#40;&#41;;
                $.get&#40;"ajax/getCategory.php", &#123; c&#58; compa&#125;,
                   function&#40;data&#41;&#123;
                     $&#40;'div#cats'&#41;.html&#40;data&#41;;
                   &#125;&#41;;
            &#125;&#41;
        &#125;&#41;
Και όλα δουλεύουν μια χαρά(προς το παρόν)!! :D Σε υπερευχαριστώ για το χρόνο σου φίλε fafo! :pint: :pint: :pint: :pint: :pint:

Απάντηση

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

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

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