2016-03-23 7 views
0

Ich bekomme korrekte Ergebnis (Deaktivieren bestimmter Woche), wenn Sie das Array statisch übergeben, aber nicht funktioniert, während dynamische Array übergeben.Ich lese auf String aus PHP und konvertiert das in Array und Übergabe an date picker.Wenn das dynamische Array Array oder nicht überprüft und das auch Werte..Es gibt if ($.inArray(day, daysArray) != -1) ist -1 immer.Ich habe überprüft Wert auch es ist 3.Deaktivieren bestimmter Wochentage funktionieren nicht für dynamisches Array in JQuery

Es funktioniert für daysToDisable Array und funktioniert nicht für daysArray array.Both Arrays Werte sind gleich.

Kann mir bitte irgendeinen Körper helfen. Ich habe nicht verstanden Warum es nicht funktioniert.

$(function() { 


     var days="<?php echo $newstr; ?>"; 
     var daysArray=days.split(' ');alert(daysArray); // not working for this array.Here the out of this array is [2,4,5] same as below array. 

     var daysToDisable = [2, 4, 5]; //Working for this value. 

     $('#txtDate').datepicker({ 
      beforeShowDay: disableSpecificWeekDays 
     }); 

     function disableSpecificWeekDays(date) { 
      var day = date.getDay(); 
      for (i = 0; i < daysToDisable.length; i++) { 
       if ($.inArray(day, daysToDisable) != -1) { 
        return [false]; 
       } 
      } 
      return [true]; 
     } 
    }) 
+0

statt ' 'Drucken Sie die tatsächlichen Daten, die wiedergegeben werden. Es ist immer ratsam, die gerenderten Daten zu posten –

+0

Wie sieht $ newstr aus? – madalinivascu

+0

$ newstr ist "2 3 5" Ich spalte es mit Leerzeichen. – sucharitha

Antwort

0

Ich glaube, ich das Problem

nach var daysArray=days.split(' '); Ihre daysArray Array-Daten haben wie ["1","2","3"] gefunden, aber wir müssen Daten in [1,2,3] sein.

können Ihre endgültige Code wie

$(function() { 

    var days="<?php echo $newstr; ?>"; 
    var daysArray=days.split(' ');alert(daysArray); // not working for this array.Here the out of this array is [2,4,5] same as below array. 

    for (day in daysArray) { 
     daysArray[day] = parseInt(daysArray[day], 10); 
    } 

    //var daysToDisable = [2, 4, 5]; //Working for this value. 

    $('#txtDate').datepicker({ 
     beforeShowDay: disableSpecificWeekDays 
    }); 

    function disableSpecificWeekDays(date) { 
     var day = date.getDay(); 
     for (i = 0; i < daysArray.length; i++) { 
      if ($.inArray(day, daysArray) != -1) { 
       return [false]; 
      } 
     } 
     return [true]; 
    } 
}) 
schauen

WORKING FIDDLE

+0

Wenn ich mein Array drucke, bekomme ich Ausgabe 1,2,3. Das gleiche wie das statische Array. – sucharitha

+0

Sind Sie sicher, dass die Werte im Array Ganzzahlen sind? –

+0

Was ist "Tag" in TagenArray [Tag]. Ich habe es nicht verstanden. Die Werte der Wochentage sind nur 0 bis 6. – sucharitha

0

es die PHP-String auf Umwandlung weil geschieht, es

["2", "4", "5"] nicht [2, 4, 5]

dies erzeugt Versuchen

var daysToDisable = <?php echo json_encode(explode(' ',$newstr), JSON_NUMERIC_CHECK); ?>; 

statt

var days="<?php echo $newstr; ?>"; 
    var daysToDisable=days.split(' ');alert(daysArray); 
+0

Ja, diese Antwort funktioniert. Vielen Dank. – sucharitha

Verwandte Themen