2016-03-24 10 views
1

Ich habe diesen CodeJQuery jeder und Split-Ausgabe

<head> 
    <meta charset="utf-8"> 
    <script src="//code.jquery.com/jquery-2.0.1.js"></script> 
    <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/sunny/jquery-ui.css"> 
    <link rel="stylesheet" href="http://localhost/opencart/preventivo.css"> 
    <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 
    <script> 
     var opzione=$("#tutte_le_macro_opzioni").text().split(" "); 
     $.each(opzione, function(key, value) { 
      $(document).on("change","."+value,function() { 
       //does something// 
      }); 
     }); 
<div id="tutte_le_macro_opzioni"><?php echo "city,country,name"; ?></div> 

Das Problem ist jetzt, dass wenn ich var opzione=$("#tutte_le_macro_opzioni").text().split(" "); verwenden es mir, dieses Problem gibt:

Sizzle.error = function(msg) { 
    throw new Error("Syntax error, unrecognized expression: " + msg); 
}; 

Wenn ich var opzione=$("#tutte_le_macro_opzioni").text().split(" "); mit var opzione="city,country,name" ändern die Skript funktioniert perfekt. Es scheint ein Problem mit Split nach einem PHP-Ergebnis.

Könnte jemand mir bitte helfen?

UPDATE

dies ist der PHP-Code von I Div tutte_le_macro_opzioni

<?php 

$con=mysqli_connect("localhost","root","","test"); 
$a=""; 
$query= "SELECT * FROM oc_option_description"; 
$result=mysqli_query($con,$query); 
while($row=mysqli_fetch_array($result)){  

$a.=strtolower($row["name"]).","; 
} 
echo $a; 
?> 

GELÖST

ich den PHP-Code mit diesem

ALL-ten Code in einer Zeile ersetzen bevölkern. ..es scheint Groß- und Kleinschreibung zu beachten :-)

+0

Sie verpassen eine 'document.ready' Handler, was bedeutet' $ ("# tutte_le_macro_opzioni") 'ist leer, und du bist Iteration über etwas ganz anderes als das, was Sie denken, so'“ . "+ value" ist kein jQuery-Selektor und Sizzle gibt einen Fehler aus. Du hättest es in 10 Sekunden herausfinden können, indem du einfach 'console.log (opzione) selbst gemacht hast, um zu sehen, was du hast. – adeneo

Antwort

0

Versuchen Sie, diese ersetzen:

var opzione=$("#tutte_le_macro_opzioni").text().split(" "); 
$.each(opzione, function(key, value) { 
$(document).on("change","."+value,function() { 

//does something// 
}); 
}); 

Durch diese:

$(function(){ 
    var opzione=$("#tutte_le_macro_opzioni").text().split(','); 
    $.each(opzione, function(key, value) { 
    $(document).on("change","."+value,function() { 

    //does something// 
    }); 
    }); 
}); 

Da $("#tutte_le_macro_opzioni").text() enthält die gleiche wie dieser „Stadt, Land, Name“ und es ist eine Zeichenfolge, müssen Sie spalten auf ‚‘ um ein Array für $.each() Schleife zu bekommen.

See this fiddle

+0

Vielen Dank, aber funktioniert nicht in meinem Fall..Ich postete den PHP-Code von Ich bekomme den Wert von tutte_le_macro_opzioni – cicciopasticcio

+0

Ok und was gibt dieser PHP-Code genau zurück? –

+0

ops Entschuldigung, es gibt diesen Wert "Stadt, Land, Name" zurück, aber ich weiß nicht, warum es auf diese Weise nicht funktioniert – cicciopasticcio