2016-07-23 12 views
0

Ich versuche, eine Funktion für meine Wordpress-Website zu schreiben, die zuerst den Textwert einer Schaltfläche erhält und bestimmt dann den Wert einer Variablen daraus.Get Button Text Wert, um Variablenwert zu bestimmen

Ich habe drei Tasten. Jeder hat denselben Textwert, "Select Item". Ich habe eine JavaScript-Funktion geschrieben (unten vereinfacht, um nur ein Beispiel zu zeigen), die den Textwert auf "Ausgewählt" ändert, wenn darauf geklickt wird. Jetzt muss ich einen Weg finden, um zu bestimmen, ob der Textwert der Schaltfläche auf "Ausgewählt" geändert wurde, und dann eine Variable namens $ betrag in einen neuen Wert ändern. Ich weiß, dass dies mit jQuery gemacht werden kann, aber der Grund, warum ich es vermeiden möchte, ist, weil ich es brauche, um mit einer bestimmten Wordpress-Funktion zu arbeiten, und das Aufrufen von Skripten in functions.php von WordPress wird verwirrend. Ich habe versucht, die Schaltflächen in Eingaben zu ändern und sie in ein Formular zu stellen, so dass ich die $ _POST-Methode ausprobieren kann, aber mein Verständnis dafür ist, dass die $ _POST-Methode nur für die Einreichung funktioniert und ich die Variable vor dem Senden ändern muss.

<a href="#" class="selectitem1" type="submit">Select Item</a> 
<a href="#" class="selectitem2" type="submit">Select Item</a> 
<a href="#" class="selectitem3" type="submit">Select Item</a> 

$(function() {      
    $("a.selectitem1").click(function() { 
    $("a.selectitem1").text('Selected'); 
    }); 
}); 

//not sure what to do here 
add_filter('abcde', 'adjust_amount'); 
function adjust_amount() { 

    if selectitem1 text value is now "Selected"{ 
    $amount = 50; 
    if selectitem2 text value is now "Selected"{ 
    $amount = 150; 
    if selectitem3 text value is now "Selected"{ 
    $amount = 250; 
} 
+0

Wenn Sie PHP von js aufrufen möchten, benötigen Sie AJAX. Was du hier versuchst, macht keinen Sinn. – Ven

Antwort

1

Sie scheinen bereits auf der Seite mit jQuery werden, so dass ich nicht sehen, warum Sie nicht jQuery lieber verwenden, um die $amount Variable zu setzen?

Der einfachste Weg, um die gewünschte Funktionalität zu erhalten, würde wie folgt aussehen:

$(function() {      
    $('a.selectitem1').click(function() { 
     $('a.selectitem1').text('Selected'); 
     $('a.selectitem2').text('Select item'); 
     $('a.selectitem3').text('Select item'); 
     $amount = 50; 
    }); 

    // equivalently for selectitem2 and selectitem3 
}); 
+0

Es ist, weil die Variable $ Betrag lokal für diese Funktion ist und soweit ich weiß, können Sie keine JavaScript-Funktionen in der functions.php-Datei Ihrer Wordpress-Site hinzufügen. Leider funktioniert das oben nicht für mich. – LearntoExcel

+0

Vielleicht können Sie den Wert eines versteckten '' auf den gewünschten $ Betrag setzen und diesen Wert von der anderen Funktion lesen? – Bart

+0

Hi Bart, das ist eine sehr gute Idee. Ich werde es als nächstes versuchen. Vielen Dank. – LearntoExcel

0

Ich würde eine AJAX verwenden:

In der Formular-Dateien unter dem folgenden:

<!DOCTYPE html> 
<html> 
<body> 

<form action=""> 
<input type="button" id="txt1" value="Select Item" name="£10.00" onclick="showValue(this.name)"> 
<input type="button" id="txt1" value="Select Item" name="£15.00" onclick="showValue(this.name)"> 
<input type="button" id="txt1" value="Select Item" name="£20.00" onclick="showValue(this.name)"> 
</form> 

<p>Value: <span id="txtValue"></span></p> 

<script> 
function showValue(str) { 
    var xhttp; 
    if (str.length == 0) { 
    document.getElementById("txtValue").innerHTML = ""; 
    return; 
    } 
    xhttp = new XMLHttpRequest(); 
    xhttp.onreadystatechange = function() { 
    if (xhttp.readyState == 4 && xhttp.status == 200) { 
     document.getElementById("txtValue").innerHTML = xhttp.responseText; 
    } 
    }; 
    xhttp.open("GET", "getinfo.php?q="+str, true); 
    xhttp.send(); 
} 
</script> 

</body> 
</html> 

Erstellen Sie dann eine Datei mit dem Namen getinfo.php und fügen Sie Folgendes hinzu:

<?php 
// Array with names 
$a[] = "£10.00"; 
$a[] = "£15.00"; 
$a[] = "£20.00"; 


// get the q parameter from URL 
$q = $_REQUEST["q"]; 

$value = ""; 

if ($q !== "") { 
    $q = strtolower($q); 
    $len=strlen($q); 
    foreach($a as $name) { 
     if (stristr($q, substr($name, 0, $len))) { 
      if ($value === "") { 
       $value = $name; 
      } else { 
       $value .= ", $name"; 
      } 
     } 
    } 
} 

echo $value === "" , $value; 
//More code here for your selected $value variable 
?> 
Verwandte Themen