Ich habe den folgenden Code, der gut funktioniert, um bestimmte Werte zu erhalten und die Strings wie ich brauche Streifen. Allerdings möchte ich die Felder mit einem int für den Namen greifen und diese in ein JSON-Array unter meinen benutzerdefinierten Feldern platzieren. Wie kann ich über die Felder iterieren und alle Felder mit einem int für den Namen finden und diese dann als json ID mit dem übergebenen Wert als json value verwenden? IE:PHP Form Felder mit Int als Name für JSON-Array
input type="text" name="24349163" value="Here"
JSON codiert:
"id"=>'24349163', "value" =>'value of the field I need'
Was ich habe jetzt:
foreach($_POST as $key => $value){
if(preg_match('/^z_/i',$key)){
$arr[strip_tags($key)] = strip_tags($value);
}
}
$create = json_encode(array('ticket' => array('subject' => $arr['z_subject'],
'comment' => array("body"=> $arr['z_description']), 'requester' =>
array('name' => $arr['z_name'], 'email' => $arr['z_requester']),
'custom_fields' => array("id"=>'24349163', "value" =>'Here'))));
Formular für die Post:
<form id="zFormer" method="post" action="tickets.php" name="zFormer">
<table>
<tr>
<td valign="top">
<label for="z_name">Your Name:</label>
<input type="text" value="John Doe" name="z_name" />
</td>
<td valign="top">
<label for="z_requester">Your Email Address: </label>
<input type="text" value="[email protected]" name="z_requester" />
</td>
</tr>
<tr>
<td valign="top">
<label for="z_subject">Title/Subject: </label>
<input type="text" value="Who needs a subject?" name="z_subject" />
</td>
<td valign="top">
<label for="z_description">Summary Description:</label>
<textarea name="z_description">Systems are down</textarea>
</td>
</tr>
<tr>
<td valign="top">
<label for="24275273">Incident Start Date:</label><br/>
<input type="date" name="24275273" value="" />
</td>
<td valign="top">
<label for="24275293">Incident Start Time:</label><br/>
<input type="time" name="24275293" value="" />
</td>
</tr>
Ok, wenn Sie mehrere haben, wenn Sie das Array zuweisen, haben Sie das Array speichern als: '$ arr ['ticket'] ['custom_fields'] [0] = array..etc.' und '$ arr ['ticket'] ['custom_fields'] [1] = usw.'. Um das Array zurück zu lesen, würden Sie '$ arr [' ticket '] [' custom_fields ']' '' – Rasclatt
durchlaufen. Sie weisen $ arr ['ticket'] ['custom_fields'] [0] 'nicht manuell zu. das ist es, was der '$ arr ['ticket'] ['custom_fields'] []' tut. Es ist das gleiche wie 'array_push()' – Rasclatt
Ive versuchte das mehrmals und den PHP-Fehler zurückbekommen. Wenn ich Folgendes versuche, bekomme ich nur die Wortmatrix aber keine Werte. Ich muss den Index verwenden, um jeden zu bekommen. Wie kann ich dies tun, um die tatsächlichen Werte für jedes Array gespeicherte Werte anzuzeigen? foreach ($ arr ['ticket'] ['benutzerdefinierte_felder'] [] als $ val) { print $ val; } – user3691635