Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][JavaScript][PHP] Zapis wyboru z radio
Forum PHP.pl > Forum > Przedszkole
pawel06281990
Witam ,

Mam problem zapisem input z wyborem po zdjęciach, zapisuje mi pierwszy element input a jak zaznacze 2 to zapisuje mi cały czas pierwszy i nie mogę tego rozwiązać co jest nie tak na dole moje skrypty.

  1. <div class="meta-input">
  2. <div class='radio-image-wrapper'>
  3. <input <?php //echo $default; ?> onclick="show_sidebar('default')" type="radio" name="rnm_layout" class="radio rnm_layout" value="default" id="radio_1" />
  4. <label for="radio_1">
  5. <span class="ss"><img src="<?php echo get_template_directory_uri()?>/assets/admin/images/1.png" /></span>
  6. <span <?php if(get_option("rnm_layout") == "default")echo "class='check-list'"; ?> id="check-list"><img src="<?php echo get_template_directory_uri()?>/assets/admin/images/1-hover.png" /></span>
  7. </label>
  8. </div>
  9. <div class='radio-image-wrapper'>
  10. <input <?php //echo $right; ?> onclick="show_sidebar('right')" type="radio" name="rnm_layout" class="radio rnm_layout" value="right" id="radio_2" />
  11. <label for="radio_2">
  12. <span class="ss"><img src="<?php echo get_template_directory_uri()?>/assets/admin/images/2.png" /></span>
  13. <span <?php if(get_option("rnm_layout") == "right")echo "class='check-list'"; ?> id="check-list"><img src="<?php echo get_template_directory_uri()?>/assets/admin/images/2-hover.png" /></span>
  14. </label>
  15. </div>
  16. <div class='radio-image-wrapper'>
  17. <input <?php //echo $left; ?> onclick="show_sidebar('left')" type="radio" name="rnm_layout" class="radio rnm_layout" value="left" id="radio_3" />
  18. <label for="radio_3">
  19. <span class="ss"><img src="<?php echo get_template_directory_uri()?>/assets/admin/images/3.png" /></span>
  20. <span <?php if(get_option("rnm_layout") == "left")echo "class='check-list'"; ?> id="check-list"><img src="<?php echo get_template_directory_uri()?>/assets/admin/images/3-hover.png" /></span>
  21. </label>
  22. </div>
  23.  
  24. </div>

skrypt obsługujący input
[JAVASCRIPT] pobierz, plaintext
  1. function show_sidebar(id){
  2. var $ = jQuery;
  3. jQuery('input[name="rnm_layout"]').change(function(){
  4. jQuery(this).parent().parent().find(".check-list").removeClass("check-list");
  5. jQuery(this).siblings("label").children("#check-list").addClass("check-list");
  6. });
  7.  
  8. }
[JAVASCRIPT] pobierz, plaintext



Zapis do bazy
[JAVASCRIPT] pobierz, plaintext
  1. jQuery(document).ready(function($){
  2.  
  3. $("#seve_home").click(function(e) {
  4. e.preventDefault();
  5.  
  6. var rnm_layout= $(".rnm_layout").val();
  7.  
  8.  
  9. // Returns successful data submission message when the entered information is stored in database.
  10. var data = 'rnm_layout='+ rnm_layout ;
  11.  
  12.  
  13. $("#img_home").show();
  14. $("#img_home").fadeIn(400).html('<img src="../wp-content/themes/radionamaksa/assets/admin//images/loading.gif" />');
  15.  
  16. $.ajax({
  17. type: "POST",
  18. url: wp_rmn_link.ajax_url +"?action=home_page_setting_save",
  19. data: data,
  20. error: function(xhr, ajaxOptions, thrownError)
  21. {
  22. toastr.warning('Przepraszamy wsytąpił błąd sprawdz dane i spróbój ponownie.')
  23.  
  24. },
  25. success: function(data){
  26. console.log(data);
  27. toastr.success('Ustawienia Home setting zapisane poprawnie')
  28. $("#img_home").hide();
  29.  
  30. }
  31. });
  32.  
  33. return false;
  34. });
  35. });
[JAVASCRIPT] pobierz, plaintext


A tak wygląda zapis w php
  1. add_action('wp_ajax_home_page_setting_save', 'home_page_setting_save');
  2. function home_page_setting_save(){
  3. $rnm_layout = esc_sql($_POST['rnm_layout']);
  4. update_option('rnm_layout', $rnm_layout);
  5.  
  6. }


Co jest nie tak co_jest.gif sadsmiley02.gif
LowiczakPL
masz

Kod
// Returns successful data submission message when the entered information is stored in database.
var data = 'rnm_layout='+ rnm_layout;


a powinno być

Kod
// Returns successful data submission message when the entered information is stored in database.
let data = {rnm_layout: rnm_layout};


data jest obiektem nie tekstem
pawel06281990
Mam cały czas ten sam efekt zapisuje mi pierwszy element choć wybrałem 3 element nawet jak zmieniłem
LowiczakPL
działa poprawnie bo pobierasz tylko trzeci ostatni element, a dokładnie kolejny nadpisuje poprzedni

Kod
var rnm_layout= $(".rnm_layout").val();


Ty musisz sprawdzić który jest kliknięty

Kod
let rnm_layout = document.querySelector('input[name="rnm_layout"]:checked').value;
pawel06281990
Ok działa mi teraz po poprawieniu kilka rzeczy w skrypcie zapisu z góry dziękuję za pomoc
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.