Note that there are some explanatory texts on larger screens.

plurals
  1. POAjax, live edit table issue
    primarykey
    data
    text
    <p>Im working om a menu system. I use a query to get the menu list from the database. </p> <p>On that table I also have an edit and delete option. The edit and delete both works, but the edit function get activated on the TR. </p> <p>I want to activate the edit function when I click on the edit TD.</p> <p>When I just simply change </p> <pre><code>$(".edit_tr").click(function() </code></pre> <p>to</p> <pre><code>$(".editmenu").click(function() </code></pre> <p>It does the job, but it only changes the value in the input field, not in the html and or database.</p> <p>Ill hope u guys know what I mean, and can help me out.</p> <p>Thanks in advance.</p> <p>Here's the code:</p> <p>Javascript:</p> <pre><code>// delete menu </code></pre> <p>$(document).ready(function() {</p> <pre><code>// delete the entry once we have confirmed that it should be deleted $('.delete').click(function() { var parent = $(this).closest('tr'); $.ajax({ type: 'get', url: 'deletemenu.php', // &lt;- replace this with your url here data: 'ajax=1&amp;delete=' + $(this).attr('id'), beforeSend: function() { parent.animate({'backgroundColor':'#fb6c6c'},300); }, success: function() { parent.fadeOut(300,function() { parent.remove(); }); } }); }); </code></pre> <p>});</p> <pre><code>// edit menu </code></pre> <p>$(document).ready(function() {</p> <pre><code>$(".edit_tr").click(function() { var ID=$(this).attr('id'); $("#menunaam_"+ID).hide(); $("#voorgerecht_"+ID).hide(); $("#hoofdgerecht_"+ID).hide(); $("#nagerecht_"+ID).hide(); $("#prijs_"+ID).hide(); $("#menunaam_input_"+ID).show(); $("#voorgerecht_input_"+ID).show(); $("#hoofdgerecht_input_"+ID).show(); $("#nagerecht_input_"+ID).show(); $("#prijs_input_"+ID).show(); }).change(function() { var ID=$(this).attr('id'); var menunaam=$("#menunaam_input_"+ID).val(); var voorgerecht=$("#voorgerecht_input_"+ID).val(); var hoofdgerecht=$("#hoofdgerecht_input_"+ID).val(); var nagerecht=$("#nagerecht_input_"+ID).val(); var prijs=$("#prijs_input_"+ID).val(); var dataString = 'id='+ ID +'&amp;menunaam='+menunaam+'&amp;voorgerecht='+voorgerecht+'&amp;hoofdgerecht='+hoofdgerecht+'&amp;nagerecht='+nagerecht+'&amp;prijs='+prijs; $("#menunaam_"+ID).html('&lt;img src="load.gif" /&gt;'); // Loading image if(menunaam.length&gt;0&amp;&amp; voorgerecht.length&gt;0&amp;&amp; hoofdgerecht.length&gt;0&amp;&amp; nagerecht.length&gt;0&amp;&amp; prijs.length&gt;0) { $.ajax({ type: "POST", url: "editmenu.php", data: dataString, cache: false, success: function(html) { $("#menunaam_"+ID).html(menunaam); $("#voorgerecht_"+ID).html(voorgerecht); $("#hoofdgerecht_"+ID).html(hoofdgerecht); $("#nagerecht_"+ID).html(nagerecht); $("#prijs_"+ID).html(prijs); } }); } else { alert('Vul de velden in'); } }); // Edit input box click action $(".editbox").mouseup(function() { return false }); // Outside click action $(document).mouseup(function() { $(".editbox").hide(); $(".text").show(); }); }); </code></pre> <p>And the PHP for the table's</p> <pre><code>$sql = "SELECT * FROM menus"; $result = mysql_query($sql); echo "&lt;table&gt;"; echo "&lt;th&gt;#&lt;/th&gt; &lt;th&gt;Menu naam&lt;/th&gt; &lt;th&gt; Voorgerecht &lt;/th&gt; &lt;th&gt; Hoofdgerecht &lt;/th&gt; &lt;th&gt; Nagerecht &lt;/th&gt; &lt;th&gt; Prijs &lt;/th&gt; &lt;th&gt;&lt;/th&gt;&lt;th&gt;&lt;/th&gt;"; while($row = mysql_fetch_assoc($result)) { $menunr = $row['menunr']; $menunaam = $row['menunaam']; $voorgerecht = $row['voorgerecht']; $hoofdgerecht = $row['hoofdgerecht']; $nagerecht = $row['nagerecht']; $prijs = $row['prijs']; // open tr echo "&lt;tr id='$menunr' class='edit_tr'&gt;"; echo "&lt;td&gt;$menunr&lt;/td&gt;"; echo "&lt;td&gt;&lt;span id='menunaam_$menunr' class='text'&gt;$menunaam&lt;/span&gt;&lt;input type='text' value='$menunaam' class='editbox' id='menunaam_input_$menunr'/&gt;&lt;/td&gt;"; echo "&lt;td&gt;&lt;span id='voorgerecht_$menunr' class='text'&gt;$voorgerecht&lt;/span&gt;&lt;input type='text' value='$voorgerecht' class='editbox' id='voorgerecht_input_$menunr'/&gt;&lt;/td&gt;"; echo "&lt;td&gt;&lt;span id='hoofdgerecht_$menunr' class='text'&gt;$hoofdgerecht&lt;/span&gt;&lt;input type='text' value='$hoofdgerecht' class='editbox' id='hoofdgerecht_input_$menunr'/&gt;&lt;/td&gt;"; echo "&lt;td&gt;&lt;span id='nagerecht_$menunr' class='text'&gt;$nagerecht&lt;/span&gt;&lt;input type='text' value='$nagerecht' class='editbox' id='nagerecht_input_$menunr'/&gt;&lt;/td&gt;"; echo "&lt;td&gt;&lt;span id='prijs_$menunr' class='text'&gt;$prijs&lt;/span&gt;&lt;input type='text' value='$prijs' class='editbox' id='prijs_input_$menunr'/&gt;&lt;/td&gt;"; echo "&lt;td id='$menunr' class='editmenu'&gt;edit&lt;/td&gt;"; echo "&lt;td&gt;&lt;div class='delete' &gt;delete&lt;/div&gt;&lt;/td&gt;"; // close tr echo "&lt;/tr&gt;"; } echo "&lt;/table&gt;"; ?&gt; </code></pre> <p>And the ajax url php files</p> <p>deletemenu.php</p> <pre><code> &lt;?php include 'config.php'; if(isset($_GET['delete'])) { $query = 'DELETE FROM menus WHERE menunr = '.$_GET['delete']; $result = mysql_query($query); } ?&gt; </code></pre> <p>editmenu.php</p> <pre><code>&lt;?php include("config.php"); if($_POST['id']) { $id=mysql_escape_String($_POST['id']); $menunaam=mysql_escape_String($_POST['menunaam']); $voorgerecht=mysql_escape_String($_POST['voorgerecht']); $hoofdgerecht=mysql_escape_String($_POST['hoofdgerecht']); $nagerecht=mysql_escape_String($_POST['nagerecht']); $prijs=mysql_escape_String($_POST['prijs']); $sql = "update menus set menunaam='$menunaam',voorgerecht='$voorgerecht',hoofdgerecht='$hoofdgerecht',nagerecht='$nagerecht',prijs='$prijs' where menunr='$id'"; mysql_query($sql); } ?&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload